I think one problem may be in the serialization of the MessageExchange when
using the JMS / JCA flows. The exchange contains QName (for target service
and interface) and may also contain other QNames (soap headers are stored in
a map indexed by QNames).
We can easily change the first ones to use plain strings ({xxx}yy format),
but
it will be much more difficult for the ones we do not control.
On 5/2/07, Gert Vanthienen <[EMAIL PROTECTED]> wrote:
Kit,
Apparently, you are using multiple (and different) versions of the QName
class. If this solution is running on multiple JVMs, ensure that
they're all of the same version. If it isn't, could you send us the
servicemix.xml file? Do you know which are the failing services, as
this might help us pinpoint the problem?
Gert
Kit Plummer wrote:
> Getting this a lot when running a few components on the latest
> apache-servicemix-fuse release:
>
> ERROR - JMSFlow - 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 = 4418622981026545151,
> local class serialVersionUID = -9120448754896609940
> at
> org.apache.activemq.util.JMSExceptionSupport.create(
JMSExceptionSupport.java:33)
>
> at
> org.apache.activemq.command.ActiveMQObjectMessage.getObject(
ActiveMQObjectMessage.java:172)
>
> at
> org.apache.servicemix.jbi.nmr.flow.jms.JMSFlow$3.onMessage(JMSFlow.java
:281)
>
> at
> org.apache.activemq.ActiveMQMessageConsumer.dispatch(
ActiveMQMessageConsumer.java:841)
>
> at
> org.apache.activemq.ActiveMQSessionExecutor.dispatch(
ActiveMQSessionExecutor.java:96)
>
> at
> org.apache.activemq.ActiveMQSessionExecutor.iterate(
ActiveMQSessionExecutor.java:165)
>
> at
> org.apache.activemq.thread.PooledTaskRunner.runTask(
PooledTaskRunner.java:111)
>
> at
> org.apache.activemq.thread.PooledTaskRunner.access$100(
PooledTaskRunner.java:26)
>
> at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java
:44)
>
> 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(Thread.java:619)
> Caused by: java.io.InvalidClassException: javax.xml.namespace.QName;
> local class incompatible: stream classdesc serialVersionUID =
> 4418622981026545151, local class serialVersionUID = -9120448754896609940
> at
> java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
> at
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
> at
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java
:1732)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
> at
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
> at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java
:1753)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
> at
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
> at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java
:1753)
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
> at
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
> at
> org.apache.activemq.command.ActiveMQObjectMessage.getObject(
ActiveMQObjectMessage.java:166)
>
> ... 10 more
>
> Should I attach my servicemix.xml?
>
> Kit
>
--
Cheers,
Guillaume Nodet
------------------------
Principal Engineer, IONA
Blog: http://gnodet.blogspot.com/