Thanks Claus (again), Just a few notes here. I was suspecting it was the MEP. I kept trying to use syntax like this, however it was not working: <to uri="activemq:TEST.FOO?exchangePattern=InOnly" />
I did some additional searches on the forums and it seems like users where having problems with the syntax above. However the syntax you suggested works great: <to uri="activemq:TEST.FOO" pattern="InOnly"/> I found a link to multicast with aggregation strategy in the FUSE documentation: http://fusesource.com/docs/router/1.4/eip/MsgRout-Multicast.html I know the response is always coming from this endpoint: <to uri="bean:confirmationResponseBean?method=createConfirmationResponse" /> I am not quite sure how to set this using the aggregation strategy so I will do a little experimenting. However, for now the pipeline going from the JMS queue and then to the response should work out. Thanks for the help! -Yogesh Claus Ibsen-2 wrote: > > On Sat, Apr 4, 2009 at 5:27 AM, ychawla <[email protected]> > wrote: >> >> Hello All, >> I have a question. I have a Camel route configured to work with the CXF >> component using Camel 1.6.0. I am trying to invoke a service, send the >> message to a queue and send a response. However, the message seem to >> hang >> in the JMS queue. Here is the route: >> >> <cxf:cxfEndpoint id="dropoffSynchronousWebService-endpoint" >> >> serviceClass="org.wijiscommons.ssaf.drop_off.DropOffSynchronousService" >> address="/DropOffSynchronousService" >> endpointName="s:DropOffSynchronousService" >> serviceName="s:DropOffSynchronousService" >> xmlns:s="http://wijiscommons.org/ssaf/drop-off/" >> >> /> >> >> >> <camelContext >> xmlns="http://activemq.apache.org/camel/schema/spring"> >> >> <route> >> <from >> uri="cxf:bean:dropoffSynchronousWebService-endpoint?dataFormat=POJO" >> /> >> <to uri="bean:ProcessCXFIntoDOMBean?method=process" /> >> <to uri="activemq:TEST.FOO"/> >> <to >> uri="bean:confirmationResponseBean?method=createConfirmationResponse" >> /> >> </route> >> >> In activeMQ, I see this error: >> >> Caused by: org.apache.camel.ExchangeTimedOutException: The OUT message >> was >> not received within: 20000 millis on the exchange: Exchange[JmsMessage: >> ActiveMQTextMessage >> >> Any ideas? > When sending a message to a JMS destination you have to consider whether > its: > - inOnly (aka fire and forget, eg no JMSReplyTo) > - inOut (aka request/reply, eg with a JMSReplyTo) > > As the CXF endpoint is inOut (request/response) then its inherited > while routing in Camel so when you send it to the JMS queue, Camel > expects a reply. > And since it wont get a reply within its default timeout of 20 sec. > you get this exception. > > If you want to send a inOnly message to the JMS queue, then you must > use the <inOnly> or set the pattern to inOnly such as: > <to uri="activemq:TEST.FOO" pattern="inOnly/> > Or > <inOnly uri="activemq:TEST.FOO"/> > > >> >> I also tried to see up the route in a multicast scenario: >> >> <multicast> >> <pipeline> >> <to >> uri="bean:confirmationResponseBean?method=createConfirmationResponse" /> >> </pipeline> >> >> <pipeline> >> <convertBodyTo type="java.lang.String"/> >> <to uri="activemq:TEST.FOO"/> >> <to uri="file:C:\temp"/> >> </pipeline> >> </multicast> >> >> Funny thing with the 2nd example is that the message returned to the >> client >> is the string representation of the input message, rather than the out >> message I explicity set in the confirmationResponseBean like this: >> >> exchange.getOut().setBody(returnDoc.getDocumentElement()); > You have to use a AggregationStrategy to "compute" the response when > you do multicast with request/reply. > Camel will by default just return the last message processed in the > multicast. > > There should be some aggregationStrategyRef attribute you can set on > the multicast node. > > > >> >> If I take activemq out of the equation and have a simple route like this, >> all is fine: >> <route> >> <from >> uri="cxf:bean:dropoffSynchronousWebService-endpoint?dataFormat=POJO" >> /> >> <to uri="bean:ProcessCXFIntoDOMBean?method=process" /> >> <to >> uri="bean:confirmationResponseBean?method=createConfirmationResponse" >> /> >> </route> >> >> >> Any ideas? I have tried all different types of solutions and have had no >> luck. >> >> Thanks, >> Yogesh >> -- >> View this message in context: >> http://www.nabble.com/Camel-CXF-Component-with-ActiveMQ-tp22879705p22879705.html >> Sent from the Camel - Users mailing list archive at Nabble.com. >> >> > > > > -- > Claus Ibsen > Apache Camel Committer > > Open Source Integration: http://fusesource.com > Blog: http://davsclaus.blogspot.com/ > Twitter: http://twitter.com/davsclaus > Apache Camel Reference Card: > http://refcardz.dzone.com/refcardz/enterprise-integration > > -- View this message in context: http://www.nabble.com/Camel-CXF-Component-with-ActiveMQ-tp22879705p22885124.html Sent from the Camel - Users mailing list archive at Nabble.com.
