Hey Guys. Thanks for the effort.
I did realize that there was a mismatch in versions between
what we
were compiling against, and what was in the distro. Thinking
this
might be the problem, I having everything matching in our
pom.xml.
But, the problem persists. I'm having trouble mapping it to a
specific message, but think it has to do with a
JmsInUsingJCABinding.
<sm:activationSpec componentName="TSB.LI.Caps.Receiver"
service="tsb:
TSB.LI.Caps.Receiver"
failIfNoDestinationEndpoint="false">
<sm:component><bean
class="org.apache.servicemix.components.jms.JmsInUsingJCABinding
">
<property
name="jcaContainer"
ref="jencks"/>
<property
name="activationSpec">
<bean class="
org.apache.activemq.ra.ActiveMQActivationSpec">
<property
name="destination" value="TSB.LI.Caps"/>
<property
name="destinationType" value="javax.jms.Topic"/>
</bean>
</property>
</bean></sm:component>
</sm:activationSpec>
Attached is the config.
On May 2, 2007, at 1:04 AM, Guillaume Nodet wrote:
> Finding all the classes defining the QName class can be done
> using ClassLoader.getResources(). Then one could load then
and
> retrieve the serial UID using introspection i guess ...
>
> On 5/2/07, Gert Vanthienen <[EMAIL PROTECTED]> wrote:
>>
>> 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.ThreadPoolExecuto
r
>> $Worker.runTask
>> >>
>> >> (ThreadPoolExecutor.java:665)
>> >> >
>> >> > at
>> >> >
>> >>
>>
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecuto
r
>> $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/