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



Reply via email to