I'm trying to use CXF with Bndtools 4.3.   Bndtools has a launcher that by default sets the start level of all bundles to the same value.

When I use this launcher to start an app that uses CXF I get ClassNotFoundExceptions such as these:

Exception in thread "BasicTopologyManagerPreRegSrvExporter" java.lang.NoClassDefFoundError: org/apache/cxf/jaxrs/JAXRSServerFactoryBean     at org.eclipse.ecf.provider.cxf.server.CXFJaxRSServerContainer.createServlet(CXFJaxRSServerContainer.java:54)     at org.eclipse.ecf.provider.jaxrs.server.JaxRSServerContainer.createServlet(JaxRSServerContainer.java:96)     at org.eclipse.ecf.provider.jaxrs.server.JaxRSServerContainer.exportRemoteService(JaxRSServerContainer.java:199)     at org.eclipse.ecf.remoteservice.RSARemoteServiceContainerAdapter$RSARemoteServiceRegistration.publish(RSARemoteServiceContainerAdapter.java:53)     at org.eclipse.ecf.remoteservice.RemoteServiceContainerAdapterImpl.registerRemoteService(RemoteServiceContainerAdapterImpl.java:123)     at org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin.exportService(RemoteServiceAdmin.java:2182)     at org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin.exportService(RemoteServiceAdmin.java:361)     at org.eclipse.ecf.osgi.services.remoteserviceadmin.AbstractTopologyManager.handleServiceRegistering(AbstractTopologyManager.java:466)     at org.eclipse.ecf.osgi.services.remoteserviceadmin.TopologyManagerImpl$1.run(TopologyManagerImpl.java:193)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: org.apache.cxf.jaxrs.JAXRSServerFactoryBean cannot be found by org.eclipse.ecf.provider.cxf.server_1.8.1.201911051602     at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:511)     at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)     at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:414)     at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:153)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 10 more

I see that for the CXF Karaf features multiple start-levels are used for CXF bundles and dependencies...are exceptions such as the above due to not having the correct start-levels imposed by the bndtools launcher?   If not that, do others have insights as to what's going wrong?

When I use these same bundles with other launchers (such as the equinox launcher) things work ok.

Thanksinadvance for any insights.

Scott


Reply via email to