I was able to resolve the problem. In my jms config I had used the option useMessageIdAsCorrelationId. As the forwarded message has a different correlation id than the original message the client could not process the response. Besides that I had a typo in the config I posted.

On the other hand it seems to me the documentation that says the JMSReplyTo is cleared is not correct. The JMSReplyTo header was correctly set on the forwarded messsage. Should I correct this in the documentation?

Greetings

Christian


Am 26.02.2010 16:54, schrieb Schneider Christian:
Hi,

I have got two queues that listen for SOAP/JMS calls. The calls are 
request/reply and expect a reply on a temporary queue.
I want to feed requests from both queues into a common queue to serialize them.
Then I want to listen to the comon queue and process the requests.

The problem is that the replyTo header does not seem to get through to the 
common queue. So the jms Endpoint there is not able to send the reply back.
In the route I set disableReplyTo as I don“t want this route to reply to the 
sender or expect a reply. Still it should send the replyTo header as the 
listener on the common queue should send the reply.
The jms component documentation says that the jms component will clear the 
JMSReplyTo. In my case I really need it though. Any idea how to solve this?

Greetings

Christian


from("jms://" + destCustomerService + "?disableReplyTo=true") //
                 .setHeader(HEADER_ORIG_DEST, constant(destCustomerService)) //
                 .to("jms://" + destCommonQueue + "?disableReplyTo=true");
         from("jms://" + destDealService + "?disableReplyTo=true") //
                 .setHeader(HEADER_ORIG_DEST, constant(destDealService)) //
                 .to("jms://" + destCommonQueue + "?disableReplyTo=true");
         from("jms://" + destCommonQueue) //
                 .process(new MyProcessor())
                 .choice() //
                 
.when(header(HEADER_ORIG_DEST).isEqualTo(destCustomerService)).to("direct:customerService")
 //
                 
.when(header(HEADER_ORIG_DEST).isEqualTo(destCustomerService)).to("direct:dealService")
 //
                 .otherwise().to("jms://queue.deadLetter")
                 .end();





Reply via email to