I don't think you need a message converter for that. Why don't you try
setting the JMSType header after the inOut invocation to the bean? For
example:

@Override
public void configure(){
       from(IN_QUEUE).choice()
       .when(header("JMSType").isEqualTo("CommandType"))
           .inOut("bean:messageListener?method=handleMessage")
           .setHeader("JMSType").simple("${body.getClass.getCanonicalName}")
       .otherwise()
           .to("activemq:myqueue.in.DLQ")
       .routeId("jms-my-route");
}

That should do the trick...

Regards,

*Raúl Kripalani*
Principal Consultant | FuseSource Corp.
r...@fusesource.com | fusesource.com <http://www.fusesource.com/> skype:
raul.fuse | twitter: @raulvk <http://twitter.com/raulvk>,
@fusenews<http://twitter.com/fusenews>


On 22 March 2012 16:08, Xuan Huang <xuan.hu...@gamesys.co.uk> wrote:

> Hi,
>
> I have in my RouteBuilder something like this:
>
> public class MyRouteBuilder extends RouteBuilder{
> private static final String IN_QUEUE="activemq:
> myqueue.in?messageConverter=#myMessageConverter";
>
> @Override
> public void configure(){
>        from(IN_QUEUE).choice()
>        .when(header("JMSType").isEqualTo("CommandType"))
>        .inOut("bean:messageListener?method=handleMessage")
>        .otherwise().to("activemq:myqueue.in.DLQ")
>        .routeId("jms-my-route");
> }
>
> }
>
> The handleMessage method in MessageListener processes the input and
> generates a POJO which is set to the message body, but the Type in the JMS
> header is not set to the proper return type. What is the proper way of
> setting the message converter for the reply message?
>
> Regards,
> xuan

Reply via email to