Thanks for reporting the solution.
This is a direct consequence of
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6267224.
On 5/4/07, Kit Plummer <[EMAIL PROTECTED]> wrote:
For the sake of closing this thread out ...
It turned out to be an issue with Sun's 1.5.0_06 VM talking to a Sun
1.5.0_07+ (including 1.6.0) VM. We were able to get two machines
with 1.5.0_06 to talk to each other but that's it. Maybe a bug in
the 1.5.0_06 release? We also tested our stuff between a Sun 1.5.0_07
+ set up and a IBM 1.5.0 VM.
Thanks guys.
Kit
On May 3, 2007, at 7:10 AM, Kit Plummer wrote:
> Gert,
>
> I did check this, and they were different. One was 1.5x and the
> other 1.6. But, that's not the problem. I think I might know what
> the problem actually is though. We have implemented a "fancy"
> handshake around the NoB stuff - which including the dynamic
> creation of a jmsReceiver based on a Spring JmsTemplate. Our build
> environment accommodates the transitive dependency for spring-jms.
> I think the spring-jms library's JmsReceiver is the problem. We're
> using the servicemix-jms component for the rest of the stuff now,
> this is the only legacy link. I just need to figure out how to use
> the servicemix-jms component from within code now.
>
> Kit
>
> On May 3, 2007, at 12:50 AM, Gert Vanthienen wrote:
>
>> Kit,
>>
>> Since the error happens once the Network of Brokers connections is
>> made, this would suggest some kind of difference between both
>> nodes you're connecting. Have you checked that both nodes are
>> using the same JVM version?
>>
>> Gert
>>
>> Kit Plummer wrote:
>>> Might be a stretch here but I found a transitive dependency for
>>> geronimo-qname_1.1_spec out of the maven report. Could this may
>>> be it? How would I exclude this?
>>>
>>> On May 2, 2007, at 11:06 AM, Kit Plummer wrote:
>>>
>>>> Ok. I've narrowed that error happening once the Network of
>>>> Brokers connection is made...
>>>>
>>>> Kit
>>>>
>>>> On May 2, 2007, at 10:33 AM, Kit Plummer wrote:
>>>>
>>>>> There is only one SM instance...at least I'm pretty sure of
>>>>> that. I will verify. We are linking two nodes together...but,
>>>>> we see this message way before the connection is made.
>>>>>
>>>>>
>>>>> On May 2, 2007, at 10:28 AM, Guillaume Nodet wrote:
>>>>>
>>>>>> I think this is more a mismatch between several ServiceMix
>>>>>> instances
>>>>>> running on different JVMs or in different environments (with
>>>>>> different
>>>>>> QName classes). This is certainly not a configuration problem.
>>>>>>
>>>>>> On 5/2/07, Kit Plummer <[EMAIL PROTECTED]> wrote:
>>>>>>>
>>>>>>> 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/
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --Cheers,
>>>>>> Guillaume Nodet
>>>>>> ------------------------
>>>>>> Principal Engineer, IONA
>>>>>> Blog: http://gnodet.blogspot.com/
>>>>>
>>>>
>>>
>>
>
--
Cheers,
Guillaume Nodet
------------------------
Principal Engineer, IONA
Blog: http://gnodet.blogspot.com/