You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by William Blackburn <wj...@mac.com> on 2007/02/09 20:49:37 UTC

JMSFLow/Clustering Fails with InvalidClassException

I'm running a servicemix cluster using JMSFlow. The app is deployed  
as a webapp in Tomcat 5.5.20 running under a java5 jdk. I am using  
the servicemix-3.0-release version. When the nodes broadcast to each  
other, I'm getting a seriralization error on  
javax.xml.namespace.QName on all nodes

It seems as though an unexpected version of this class is being  
loaded by one of the nodes, yet I have exhaustively reviewed each jar  
that is part of my app, as well as the ones in Tomcat itself - I  
cannot find any that contain a different QName implementation, I  
*should* only have the jdk1.5 version, which has uid  
4418622981026545151.

I am at my wits end, has anyone seen this before? What am I missing?


Here is the stack trace:

ActiveMQ Session Task 2007-02-09 10:06:43,198 ERROR  
[JMSFlow:onMessage] Error processing incoming broadcast message
javax.jms.JMSException: Failed to build body from bytes. Reason:  
java.io.InvalidClassException: javax.xml.namespace.QName; local class  
incompatible: stream classdesc serialVersionUID =  
-9120448754896609940, local class serialVersionUID = 4418622981026545151
         at org.apache.activemq.util.JMSExceptionSupport.create 
(JMSExceptionSupport.java:32)
         at  
org.apache.activemq.command.ActiveMQObjectMessage.getObject 
(ActiveMQObjectMessage.java:172)
         at org.apache.servicemix.jbi.nmr.flow.jms.JMSFlow$3.onMessage 
(JMSFlow.java:278)
         at org.apache.activemq.ActiveMQMessageConsumer.dispatch 
(ActiveMQMessageConsumer.java:795)
         at org.apache.activemq.ActiveMQSessionExecutor.dispatch 
(ActiveMQSessionExecutor.java:96)
         at org.apache.activemq.ActiveMQSessionExecutor.iterate 
(ActiveMQSessionExecutor.java:149)
         at org.apache.activemq.thread.PooledTaskRunner.runTask 
(PooledTaskRunner.java:110)
         at org.apache.activemq.thread.PooledTaskRunner.access$100 
(PooledTaskRunner.java:25)
         at org.apache.activemq.thread.PooledTaskRunner$1.run 
(PooledTaskRunner.java:43)
         at  
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor 
$Worker.runTask(ThreadPoolExecutor.java:665)
         at  
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor 
$Worker.run(ThreadPoolExecutor.java:690)
         at java.lang.Thread.run(Unknown Source)
Caused by: java.io.InvalidClassException: javax.xml.namespace.QName;  
local class incompatible: stream classdesc serialVersionUID =  
-9120448754896609940, local class serialVersionUID = 4418622981026545151
         at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
         at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
         at java.io.ObjectInputStream.readClassDesc(Unknown Source)
         at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
         at java.io.ObjectInputStream.readObject0(Unknown Source)
         at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
         at java.io.ObjectInputStream.readSerialData(Unknown Source)
         at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
         at java.io.ObjectInputStream.readObject0(Unknown Source)
         at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
         at java.io.ObjectInputStream.readSerialData(Unknown Source)
         at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
         at java.io.ObjectInputStream.readObject0(Unknown Source)
         at java.io.ObjectInputStream.readObject(Unknown Source)
         at  
org.apache.activemq.command.ActiveMQObjectMessage.getObject 
(ActiveMQObjectMessage.java:166)
         ... 10 more