CannotResolveClassException after Camel route restart
Issue
- We are using JBoss A-MQ to realize a persistent SEDA in our camel routes:
<route id="sample.receiver">
<from uri="..."/>
...
<to uri="activemq:sample.incomingdocument"/>
</route>
<route id="sample.dispatcher" errorHandlerRef="mqErrorHandler">
<from uri="activemqTx:sample.incomingdocument"/>
<transacted ref="mqTransactionPolicy"/>
...
<to uri="..."/>
</route>
- The marshalling / unmarshalling of the camel body is done with the help of a MessageConverter which internally uses XStream. If we stop the dispatcher route above and enqueue a message in the JBoss A-MQ queue we get the exception below after restart the dispatcher route. How can we avoid this error?
2013-07-11 12:22:31,320 | INFO | l Console Thread | OsgiSpringCamelContext | 146 - org.apache.camel.camel-core - 2.10.0.fuse-71-047 | Route: sample.incomingdocument.dispatcher started and consuming from: Endpoint[activemqTx://sample.incomingdocument]
2013-07-11 12:22:31,367 | WARN | ncomingdocument] | EndpointMessageListener | 146 - org.apache.camel.camel-core - 2.10.0.fuse-71-047 | Execution of JMS message listener failed. Caused by: [org.apache.camel.RuntimeCamelException - com.thoughtworks.xstream.mapper.CannotResolveClassException: x.x.SomeClass : x.x.SomeClass not found by org.apache.karaf.shell.console [15]]
org.apache.camel.RuntimeCamelException: com.thoughtworks.xstream.mapper.CannotResolveClassException: x.x.SomeClass : x.x.SomeClass not found by org.apache.karaf.shell.console [15]
at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1271)[146:org.apache.camel.camel-core:2.10.0.fuse-71-047]
at org.apache.camel.component.jms.EndpointMessageListener$EndpointMessageListenerAsyncCallback.done(EndpointMessageListener.java:187)[158:org.apache.camel.camel-jms:2.10.0.fuse-71-047]
at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:108)[158:org.apache.camel.camel-jms:2.10.0.fuse-71-047]
at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:560)[157:org.springframework.jms:3.0.7.RELEASE]
at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:498)[157:org.springframework.jms:3.0.7.RELEASE]
at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467)[157:org.springframework.jms:3.0.7.RELEASE]
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325)[157:org.springframework.jms:3.0.7.RELEASE]
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:243)[157:org.springframework.jms:3.0.7.RELEASE]
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058)[157:org.springframework.jms:3.0.7.RELEASE]
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:952)[157:org.springframework.jms:3.0.7.RELEASE]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_21]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_21]
at java.lang.Thread.run(Thread.java:722)[:1.7.0_21]
Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException: x.x.SomeClass : x.x.SomeClass not found by org.apache.karaf.shell.console [15]
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:62)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.CGLIBMapper.realClass(CGLIBMapper.java:50)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:71)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:86)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:87)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:52)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:138)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:33)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:931)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:917)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:861)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:853)[131:org.apache.servicemix.bundles.xstream:1.3.0.3]
Environment
- Red Hat JBoss A-MQ
- 6.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.