FYI, I just filled a JIRA[1] for it, the patch is committed into the trunk.
[1]https://issues.apache.org/jira/browse/CAMEL-6092 -- Willem Jiang Red Hat, Inc. FuseSource is now part of Red Hat Web: http://www.fusesource.com | http://www.redhat.com Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) (English) http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese) Twitter: willemjiang Weibo: 姜宁willem On Thursday, February 21, 2013 at 11:39 AM, Willem jiang wrote: > Hi, > > If you just want to send the response to the queue, you need to change the > MEP (message exchange pattern) to InOnly, otherwise camel-jms producer will > complain about it cannot get the right response on time. > > BTW, we need to set the MEP according to the request we got in the camel-cxf > consumer. > > -- > Willem Jiang > > Red Hat, Inc. > FuseSource is now part of Red Hat > Web: http://www.fusesource.com | http://www.redhat.com > Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) > (English) > http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese) > Twitter: willemjiang > Weibo: 姜宁willem > > > > > > On Thursday, February 21, 2013 at 11:26 AM, Gnanaguru S wrote: > > > Hi, > > > > I am creating a camel application, where the client sends the SOAP request > > to the CXF endpoint and the response should be sent to an JMS endpoint. > > > > I am getting a error and the message moves to the DLQ. Is that because CXF > > endpoint itselfs expects the response. > > > > I think, I have done a logical mistake. Please help. > > > > *This is my flow:* > > > > private String uri = "cxf:/incident?serviceClass=" + > > IncidentService.class.getName(); > > > > @Override > > public void configure() throws Exception { > > from(uri) > > .to("log:input") > > // send the request to the route to handle the operation > > // the name of the operation is in that header > > .recipientList(simple("direct:${header.operationName}")); > > > > // report incident > > from("direct:reportIncident") > > .process(new Processor() { > > public void process(Exchange exchange) throws Exception { > > // get the id of the input > > String id = > > exchange.getIn().getBody(InputReportIncident.class).getIncidentId(); > > > > // set reply including the id > > OutputReportIncident output = new > > OutputReportIncident(); > > output.setCode("OK;" + id); > > exchange.getOut().setBody(output); > > } > > }) > > //JMS Endpoint > > .to("activemq:queue:outputqueue"); > > > > > > *Error log:* > > > > 19:16:11,197 ERROR [org.apache.camel.processor.DefaultErrorHandler] (Camel > > (came > > l-1) thread #1 - JmsReplyManagerTimeoutChecker[outputqueue]) Failed delivery > > for > > (MessageId: ID-L-156023234-51655-1361367500234-0-5 on ExchangeId: > > ID-L-15602323 > > 4-51655-1361367500234-0-3). Exhausted after delivery attempt: 1 caught: > > org.apac > > he.camel.ExchangeTimedOutException: The OUT message was not received within: > > 200 > > 00 millis due reply message with correlationID: > > ID-L-156023234-51655-13613675002 > > 34-0-4 not received. Exchange[Message: > > org.apache.camel.example.cxf.incident.Out > > putReportIncident@747ba5]: org.apache.camel.ExchangeTimedOutException: The > > OUT m > > essage was not received within: 20000 millis due reply message with > > correlationI > > D: ID-L-156023234-51655-1361367500234-0-4 not received. Exchange[Message: > > org.ap > > ache.camel.example.cxf.incident.OutputReportIncident@747ba5] > > at > > org.apache.camel.component.jms.reply.ReplyManagerSupport.processReply > > (ReplyManagerSupport.java:133) [camel-jms-2.10.0.jar:2.10.0] > > at > > org.apache.camel.component.jms.reply.TemporaryQueueReplyHandler.onTim > > eout(TemporaryQueueReplyHandler.java:61) [camel-jms-2.10.0.jar:2.10.0] > > at > > org.apache.camel.component.jms.reply.CorrelationTimeoutMap.onEviction > > (CorrelationTimeoutMap.java:53) [camel-jms-2.10.0.jar:2.10.0] > > at > > org.apache.camel.component.jms.reply.CorrelationTimeoutMap.onEviction > > (CorrelationTimeoutMap.java:30) [camel-jms-2.10.0.jar:2.10.0] > > at > > org.apache.camel.support.DefaultTimeoutMap.purge(DefaultTimeoutMap.ja > > va:203) [camel-core-2.10.0.jar:2.10.0] > > at > > org.apache.camel.support.DefaultTimeoutMap.run(DefaultTimeoutMap.java > > :159) [camel-core-2.10.0.jar:2.10.0] > > at > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:44 > > 1) [rt.jar:1.6.0_17] > > at > > java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java > > :317) [rt.jar:1.6.0_17] > > at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) > > [rt. > > jar:1.6.0_17] > > at > > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask. > > access$101(ScheduledThreadPoolExecutor.java:98) [rt.jar:1.6.0_17] > > at > > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask. > > runPeriodic(ScheduledThreadPoolExecutor.java:181) [rt.jar:1.6.0_17] > > at > > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask. > > run(ScheduledThreadPoolExecutor.java:205) [rt.jar:1.6.0_17] > > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec > > utor.java:886) [rt.jar:1.6.0_17] > > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor > > .java:908) [rt.jar:1.6.0_17] > > at java.lang.Thread.run(Thread.java:619) [rt.jar:1.6.0_17] > > > > 19:16:11,200 WARN [org.apache.cxf.phase.PhaseInterceptorChain] > > (http--127.0.0.1 > > -8080-1) Interceptor for > > {http://incident.cxf.example.camel.apache.org/}Incident > > Service#{http://incident.cxf.example.camel.apache.org/}reportIncident has > > thrown > > exception, unwinding now: org.apache.cxf.interceptor.Fault: The OUT message > > was > > not received within: 20000 millis due reply message with correlationID: > > ID-L-15 > > 6023234-51655-1361367500234-0-4 not received. Exchange[Message: > > org.apache.camel > > .example.cxf.incident.OutputReportIncident@747ba5] > > at > > org.apache.camel.component.cxf.CxfConsumer$1.checkFailure(CxfConsumer > > .java:194) [camel-cxf-2.10.0.jar:2.10.0] > > at > > org.apache.camel.component.cxf.CxfConsumer$1.setResponseBack(CxfConsu > > mer.java:174) [camel-cxf-2.10.0.jar:2.10.0] > > at > > org.apache.camel.component.cxf.CxfConsumer$1.syncInvoke(CxfConsumer.j > > ava:126) [camel-cxf-2.10.0.jar:2.10.0] > > at > > org.apache.camel.component.cxf.CxfConsumer$1.invoke(CxfConsumer.java: > > 71) [camel-cxf-2.10.0.jar:2.10.0] > > at > > org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInv > > okerInterceptor.java:58) [cxf-api-2.6.1.jar:2.6.1] > > at > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:44 > > 1) [rt.jar:1.6.0_17] > > at > > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [r > > t.jar:1.6.0_17] > > at java.util.concurrent.FutureTask.run(FutureTask.java:138) > > [rt.jar:1.6. > > 0_17] > > at > > org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecu > > tor.java:37) [cxf-api-2.6.1.jar:2.6.1] > > at > > org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(Se > > rviceInvokerInterceptor.java:107) [cxf-api-2.6.1.jar:2.6.1] > > at > > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept > > orChain.java:262) [cxf-api-2.6.1.jar:2.6.1] > > at > > org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainIniti > > ationObserver.java:122) [cxf-api-2.6.1.jar:2.6.1] > > at > > org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(Abstract > > HTTPDestination.java:211) [cxf-rt-transports-http-2.6.1.jar:2.6.1] > > at > > org.apache.cxf.transport.servlet.ServletController.invokeDestination( > > ServletController.java:213) [cxf-rt-transports-http-2.6.1.jar:2.6.1] > > at > > org.apache.cxf.transport.servlet.ServletController.invoke(ServletCont > > roller.java:193) [cxf-rt-transports-http-2.6.1.jar:2.6.1] > > at > > org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpr > > ingServlet.java:129) [cxf-rt-transports-http-2.6.1.jar:2.6.1] > > at > > org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(Ab > > stractHTTPServlet.java:187) [cxf-rt-transports-http-2.6.1.jar:2.6.1] > > at > > org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractH > > TTPServlet.java:110) [cxf-rt-transports-http-2.6.1.jar:2.6.1] > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) > > [jboss-s > > ervlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] > > at > > org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(Abstract > > HTTPServlet.java:166) [cxf-rt-transports-http-2.6.1.jar:2.6.1] > > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl > > icationFilterChain.java:329) [jbossweb-7.0.13.Final.jar:] > > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF > > ilterChain.java:248) [jbossweb-7.0.13.Final.jar:] > > at > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV > > alve.java:275) [jbossweb-7.0.13.Final.jar:] > > at > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextV > > alve.java:161) [jbossweb-7.0.13.Final.jar:] > > at > > org.jboss.as.web.security.SecurityContextAssociationValve.invoke > > (http://web.security.SecurityContextAssociationValve.invoke)(Secu > > rityContextAssociationValve.java:153) > > [jboss-as-web-7.1.1.Final.jar:7.1.1.Final] > > > > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j > > ava:155) [jbossweb-7.0.13.Final.jar:] > > at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j > > ava:102) [jbossweb-7.0.13.Final.jar:] > > at > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal > > ve.java:109) [jbossweb-7.0.13.Final.jar:] > > at > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav > > a:368) [jbossweb-7.0.13.Final.jar:] > > at > > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java > > :877) [jbossweb-7.0.13.Final.jar:] > > at > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce > > ss(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:] > > at > > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:93 > > 0) [jbossweb-7.0.13.Final.jar:] > > at java.lang.Thread.run(Thread.java:619) [rt.jar:1.6.0_17] > > Caused by: org.apache.camel.ExchangeTimedOutException: The OUT message was > > not r > > eceived within: 20000 millis due reply message with correlationID: > > ID-L-15602323 > > 4-51655-1361367500234-0-4 not received. Exchange[Message: > > org.apache.camel.examp > > le.cxf.incident.OutputReportIncident@747ba5] > > at > > org.apache.camel.component.jms.reply.ReplyManagerSupport.processReply > > (ReplyManagerSupport.java:133) [camel-jms-2.10.0.jar:2.10.0] > > at > > org.apache.camel.component.jms.reply.TemporaryQueueReplyHandler.onTim > > eout(TemporaryQueueReplyHandler.java:61) [camel-jms-2.10.0.jar:2.10.0] > > at > > org.apache.camel.component.jms.reply.CorrelationTimeoutMap.onEviction > > (CorrelationTimeoutMap.java:53) [camel-jms-2.10.0.jar:2.10.0] > > at > > org.apache.camel.component.jms.reply.CorrelationTimeoutMap.onEviction > > (CorrelationTimeoutMap.java:30) [camel-jms-2.10.0.jar:2.10.0] > > at > > org.apache.camel.support.DefaultTimeoutMap.purge(DefaultTimeoutMap.ja > > va:203) [camel-core-2.10.0.jar:2.10.0] > > at > > org.apache.camel.support.DefaultTimeoutMap.run(DefaultTimeoutMap.java > > :159) [camel-core-2.10.0.jar:2.10.0] > > at > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:44 > > 1) [rt.jar:1.6.0_17] > > at > > java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java > > :317) [rt.jar:1.6.0_17] > > at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) > > [rt. > > jar:1.6.0_17] > > at > > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask. > > access$101(ScheduledThreadPoolExecutor.java:98) [rt.jar:1.6.0_17] > > at > > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask. > > runPeriodic(ScheduledThreadPoolExecutor.java:181) [rt.jar:1.6.0_17] > > at > > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask. > > run(ScheduledThreadPoolExecutor.java:205) [rt.jar:1.6.0_17] > > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec > > utor.java:886) [rt.jar:1.6.0_17] > > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor > > .java:908) [rt.jar:1.6.0_17] > > ... 1 more > > > > > > > > Regards > > Guru > > @gnanagurus > > > > > > > > > > > > -- > > View this message in context: > > http://camel.465427.n5.nabble.com/One-way-request-Camel-CXF-tp5727920.html > > Sent from the Camel - Users mailing list archive at Nabble.com > > (http://Nabble.com). >