On Tue, Feb 3, 2015 at 2:30 PM, James Green <james.mk.gr...@gmail.com> wrote: > Nope :) > > rest("/from-smtp/") > .post() > .type(EmailedSmsRequest.class) > .to("direct:fromSmtp"); > > direct:fromSmtp routes onward to direct:router. direct:router sends it > onwards to jms:queue:foo asynchronously. The route that reads > from("direct:router") is intended for be fully re-usable and has multiple > public interfaces sending messages into it but is not expected to reply at > all (except for raising exceptions of course). > > Beyond direct:fromSmtp routing to direct:router, I want to set the OUT part > of the exchange so that the rest component knows what to send back to the > http client. >
Then do additional routing after, eg to set the OUT part you want > I suspect I can wiretap() to split the messaging across two routes - one to > direct:router and the other to processing that provides the OUT part of the > exchange however it doesn't feel entirely natural hence I didn't think of > it myself. > > [ I have not yet tried wiretap in the code I'm asking the question about, > will do shortly ] > > > > On 3 February 2015 at 13:20, Morgan Hautman <morgan.haut...@gmail.com> > wrote: > >> Yes I understand we can encounter a timeout when we don't respond to >> http/rest because it's synchronous. >> >> But I think what James means is : >> >> 1st route: >> from(cxf:...).to(activemq:bar) >> >> 2nd route >> from(activemq: bar).to(processing) >> >> The first route sends a message to the second route through activemq and >> waits for the second route to process the message and the second route >> respond to the first route who will answer to the client what "route2" >> responded. (timeout or not) >> >> Hope It's comprehensive. >> >> PS: I'm not in James team, I just try to help and understand a problem I >> had myself some months ago but didn't look further. >> >> >> On 3/02/2015 13:54, Claus Ibsen wrote: >> >>> On Tue, Feb 3, 2015 at 1:27 PM, Morgan Hautman <morgan.haut...@gmail.com> >>> wrote: >>> >>>> Claus, >>>> >>>> Is their any way a queue (using activemq) could respond , like a >>>> request-reply mechanism? >>>> >>>> http://camel.apache.org/request-reply.html >>>> >>>> Not sure I follow. Camel can do InOnly and InOut over JMS. So yeah >>> both is possible. >>> >>> Just mind that a client like HTTP / REST is synchronous in that sense >>> the client awaits a response, so whether that is just a OK or to >>> respond with some new data, then that needs to happen, and occurs when >>> the exchange is done being routed, and the control is back at the >>> consumer. >>> >>> On 3/02/2015 13:14, Claus Ibsen wrote: >>>> >>>>> Hi >>>>> >>>>> You can send the message to the JMS as InOnly or use WireTap >>>>> >>>>> On Tue, Feb 3, 2015 at 12:27 PM, James Green <james.mk.gr...@gmail.com> >>>>> wrote: >>>>> >>>>>> I have two routes: >>>>>> >>>>>> 1. A rest dsl accepting data from HTTP clients and sending it to the >>>>>> route >>>>>> below before replying to the client >>>>>> 2. A "backend" route that receives an Exchange and sends it to a JMS >>>>>> queue >>>>>> >>>>>> By default, although the JMS queue gets the message, a stack trace >>>>>> occurs >>>>>> because the queue did not respond. So I set the backend route to be >>>>>> InOnly >>>>>> and now no stack trace occurs. >>>>>> >>>>>> However, the remaining part of my rest dsl route does not execute. >>>>>> >>>>>> So how do I accept some REST request, fire off an asynchronous JMS >>>>>> message, >>>>>> and reply to the HTTP client? >>>>>> >>>>>> Thanks, >>>>>> >>>>>> James >>>>>> >>>>> >>>>> >>>>> >>> >>> >> -- Claus Ibsen ----------------- Red Hat, Inc. Email: cib...@redhat.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen hawtio: http://hawt.io/ fabric8: http://fabric8.io/