CannotResolveClassException after Camel route restart

Solution Unverified - Updated -

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.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content