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).