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/

Reply via email to