0

I try to open a rest service with camel:cxfrs. In fact, it works but only in default bindingStyle. I do not want to manage MessageContentsList. So like it is documented, I use the SimpleConsumer bindingStyle.

But when I deploy my bundle in karaf (2.3.5) an NotClassDefFoundError occurs (SimpleCxfRsBinding). I precise that I am in camel-2.12.3.

blueprint.xml:

<camel:from uri="cxfrs:///test?resourceClasses=application.Resource&amp;loggingFeatureEnabled=true&amp;bindingStyle=SimpleConsumer"/>

(Edit) karaf.log:

ERROR: Bundle blueprint-contract-first [403] EventDispatcher: Error during dispatch. (java.lang.NoClassDefFoundError: Could not initialize class org.apache.came l.component.cxf.jaxrs.SimpleCxfRsBinding) java.lang.NoClassDefFoundError: Could not initialize class org.apache.camel.component.cxf.jaxrs.SimpleCxfRsBinding 
at org.apache.camel.component.cxf.jaxrs.CxfRsEndpoint.doStart(CxfRsEndpoint.java:477) 
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) 
at org.apache.camel.impl.DefaultCamelContext.startService(DefaultCamelContext.java:1929) 
at org.apache.camel.impl.DefaultCamelContext.doAddService(DefaultCamelContext.java:987) 
at org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:948) 
at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:527) 
at org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:71) 
at org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:192) 
at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:106) 
at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:112) 
at org.apache.camel.model.FromDefinition.resolveEndpoint(FromDefinition.java:72) 
at org.apache.camel.impl.DefaultRouteContext.getEndpoint(DefaultRouteContext.java:88) 
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:890) 
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:177) 
at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:778) 
at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1955) 
at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1705) 
at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1579) 
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) 
at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1547) 
at org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:177) 
at org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:209) 
at org.apache.camel.blueprint.BlueprintCamelContext.serviceChanged(BlueprintCamelContext.java:147) 
at org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932) 
at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:793) 
at org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:543) at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4260) 
at org.apache.felix.framework.Felix.registerService(Felix.java:3275) 
at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:346) 
at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:352) 
at org.apache.camel.blueprint.BlueprintCamelContext.init(BlueprintCamelContext.java:97) 
at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:297) 
at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:958) 
at org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:712) 
at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:824) 
at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:787) 
at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88) 
at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:245) 
at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:183) 
at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:681) 
at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:378) 
at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:269) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
at org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106) 
at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) 
at java.lang.Thread.run(Thread.java:662)

Does anyone have an working example of cxfrs with SimpleConsumer in blueprint? Did I miss something?

Shevliaskovic
  • 1,562
  • 4
  • 26
  • 43
Johan Le Lan
  • 47
  • 1
  • 8
  • Can you show me the full stack trace of the last exception? I just checked the code of camel-cxfrs, you just need to setup the bindingStyle option to let camel to load the SimpleCxfRsBinding for you. – Willem Jiang Jul 14 '14 at 01:06
  • Thank you Willem. I actually try to reproduce this in 2.13.2 to see if it is linked to camel version. – Johan Le Lan Jul 14 '14 at 09:08
  • I modified my question in consequence. – Johan Le Lan Jul 15 '14 at 07:28
  • Can you check the version of CXF that you are using? I guess you may not install the jaxrs 2.0 API bundle into you OSGi container. – Willem Jiang Jul 16 '14 at 01:03
  • You're right Willem. After a clean install with cxf/2.7.11, camel/2.13.2 in karaf/3.0.1. It works perfectly. In my first installation, I had multiple versions of cxf,camel and I think that my bundle referenced the wrong version. – Johan Le Lan Jul 16 '14 at 21:36

1 Answers1

0

It was a invalid version on Karaf. After a clean install with cxf/2.7.11, camel/2.13.2 in karaf/3.0.1. It works perfectly.

Johan Le Lan
  • 47
  • 1
  • 8