Hi

You should generally only cast to the known JMS types from the JMS
spec, eg. javax.jms.TextMessage, javax.jms.BytesMessage.

If you want to cast to specialized AMQ types then use instanceof to
check the type to be sure.

On Tue, Mar 2, 2010 at 4:16 PM, bzaks1424 <[email protected]> wrote:
>
> I am writing an application using spring as my base, camel as my routing tool
> and activemq as my transport.
>
> I wrote a listener to capture the message as it arrives into the Queue - and
> process it right away.
>
> Code:
> @Service
> public class PayloadQueueListener implements MessageListener {
>       �...@override
>        public void onMessage(Message message) {
>                try {
>                        ActiveMQBlobMessage blobMessage =
> (ActiveMQBlobMessage) message;
>
> However - whenever I try to to do the cast - it throws a class cast
> exception:
> Exception:
> org.apache.camel.RuntimeCamelException: java.lang.RuntimeException:
> java.lang.ClassCastException: org.apache.activemq.command.ActiveMQMessage
> cannot be cast to org.apache.activemq.command.ActiveMQBlobMessage
>        at
> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1039)
>        at
> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:103)
>        at
> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543)
>        at
> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482)
>        at
> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451)
>        at
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
>        at
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
>        at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982)
>        at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974)
>        at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876)
>        at java.lang.Thread.run(Thread.java:619)
>
> Do I need to do something specifically with ActiveMQ or is this an issue
> with the way Camel is routing message and type casting it to the queue?
> --
> View this message in context: 
> http://old.nabble.com/Camel-%2B-ActiveMQ-%2B-Spring-Problems-tp27757055p27757055.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



-- 
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Reply via email to