Guillaume,

A quick "Open Type..." in Eclipse also shows me that a lot of the jar files we use in ServiceMix include their own javax.xml.namespace.QName, so I suppose it wouldn't be that easy to ensure that only a single variant of the class gets loaded at runtime either. Do you know of any tool to quickly examine the serialVersionUIDs of these classes in order to get this user's problem solved?

Gert

Guillaume Nodet wrote:
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
>





Reply via email to