camel-cxf-blueprint - проблема с ClassNotFoundException - Entaxy
camel-cxf-blueprint - проблема с ClassNotFoundException
Недавно натолкнулись на небольшую проблему и потратили некоторое время в связи с ней - вдруг наш блог сэкономит кому-нибудь время... Мы делали простой маршрут на Apache Camel с использованием Apache CXF. В blueprint был добавлен CXF Server:
<!-- CXF servers -->
<camelcxf:rsServer id="blogServiceServer" address="/api/message"
loggingFeatureEnabled="false" serviceClass="ru.entaxy.cxf.test.MessageService">
</camelcxf:rsServer>
Бандл устанавливался в Apache Karaf, куда были предварительно установлены все нужные features - cxf и camel-cxf. При установке нашего бандла вылетала ошибка Caused by: java.lang.ClassNotFoundException: org.apache.camel.component.cxf.jaxrs.blueprint.CxfRsBlueprintEndpointFactoryBean, хотя пакет org.apache.camel.component.cxf.jaxrs.blueprint прекрасно экспортируется из активного бандла camel-cxf-blueprint. В итоге эта странная проблема решилась только добавлением явного импорта пакета в maven-bundle-plugin:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>5.1.3</version>
<extensions>true</extensions>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
<configuration>
<instructions>
<Bundle-SymbolicName>entaxy-test</Bundle-SymbolicName>
<Export-Package>ru.entaxy.test.*</Export-Package>
<Import-Package>
!com.sun.xml.*,
org.apache.cxf.jaxrs.impl,
org.apache.camel.component.cxf.jaxrs.blueprint,
org.apache.camel.component.cxf.blueprint,
*</Import-Package>
</instructions>
</configuration>
</plugin>
Удачных вам интеграций!
* Рисунок для этого блога взят с https://camel.apache.org/
ул. Гоголя, д. 40, этаж 2
Мы используем cookie. Это позволяет нам анализировать взаимодействие посетителей с сайтом и делать его лучше.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie.
Подробнее вы можете ознакомиться с политикой обработки персональных данных, нажав кнопку "Читать ещё".