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