You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Thomas Recloux <th...@gmail.com> on 2008/06/19 09:58:15 UTC

JMS Flow Error

Hi,

I'm using servicemix 3.2.1 with the jms flow and the jms-component.

The use case is :
- A service unit consumes a JMS Queue provided by Webpshere MQ
- A service unit based on the eip-component is routing the message
- A service unit writes the message in an other JMS Queue provided by
Webpshere MQ

When the destination Websphere MQ instance is down, the JMS Flow is
throwing this exception :

ERROR - JMSFlow                        - Caught an exception unpacking JMS Messa
ge:
javax.jms.JMSException: Failed to build body from bytes. Reason: java.io.IOExcep
tion: org.springframework.jms.UncategorizedJmsException
        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.AbstractJMSFlow.onMessage(AbstractJMSFlow.java:505)
        at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:854)
        at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:99)
        at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:166)
        at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:117)
        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:595)
Caused by: java.io.IOException:
org.springframework.jms.UncategorizedJmsException
        at org.apache.activemq.command.ActiveMQObjectMessage.getObject(ActiveMQObjectMessage.java:168)
        ... 10 more

I attached a debugger and the root exception seems to be a
ClassNotFoundException of the MQ Exception : com.ibm.mq.MQException

I tried to move the Websphere MQ jars from the service units to the
ServiceMix lib directory and an other ClassNotFoundException is thrown
: "org.springframework.jms.UncategorizedJmsException".

We tried the same use case with two externals ActiveMQ as source and
destination and there is no problem.

This seems to be a classloading issue, does somenone have a solution ?

Thanks, Thomas

-- 
Thomas Recloux

Re: JMS Flow Error

Posted by Bruce Snyder <br...@gmail.com>.
On Thu, Jun 19, 2008 at 1:58 AM, Thomas Recloux
<th...@gmail.com> wrote:
> Hi,
>
> I'm using servicemix 3.2.1 with the jms flow and the jms-component.
>
> The use case is :
> - A service unit consumes a JMS Queue provided by Webpshere MQ
> - A service unit based on the eip-component is routing the message
> - A service unit writes the message in an other JMS Queue provided by
> Webpshere MQ
>
> When the destination Websphere MQ instance is down, the JMS Flow is
> throwing this exception :
>
> ERROR - JMSFlow                        - Caught an exception unpacking JMS Messa
> ge:
> javax.jms.JMSException: Failed to build body from bytes. Reason: java.io.IOExcep
> tion: org.springframework.jms.UncategorizedJmsException
>        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.AbstractJMSFlow.onMessage(AbstractJMSFlow.java:505)
>        at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:854)
>        at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:99)
>        at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:166)
>        at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:117)
>        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:595)
> Caused by: java.io.IOException:
> org.springframework.jms.UncategorizedJmsException
>        at org.apache.activemq.command.ActiveMQObjectMessage.getObject(ActiveMQObjectMessage.java:168)
>        ... 10 more
>
> I attached a debugger and the root exception seems to be a
> ClassNotFoundException of the MQ Exception : com.ibm.mq.MQException
>
> I tried to move the Websphere MQ jars from the service units to the
> ServiceMix lib directory and an other ClassNotFoundException is thrown
> : "org.springframework.jms.UncategorizedJmsException".
>
> We tried the same use case with two externals ActiveMQ as source and
> destination and there is no problem.
>
> This seems to be a classloading issue, does somenone have a solution ?

Have you added the WebsphereMQ classes to the classpath of the
xbean.xml file? See the following for more info:

http://servicemix.apache.org/classloaders.html

Bruce
-- 
perl -e 'print unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
);'

Apache ActiveMQ - http://activemq.org/
Apache Camel - http://activemq.org/camel/
Apache ServiceMix - http://servicemix.org/

Blog: http://bruceblog.org/