On Wed, Jan 20, 2010 at 10:40 AM, Wayne Keenan <wayne.kee...@gmail.com> wrote:
> Hi,
>
> Apologies, I didn't word my previous email very well; what I should have
> also mentioned for clarity is that if I do this:
>
>        <route>
>            <from uri="jetty:http://0.0.0.0:8080/endpoint"/>
>            <to uri="bean:myBean"/>
>            <transform>
>                <simple>${id}</simple>
>            </transform>
>        </route>
>
> The same bean is able to obtain the HTTPServletRequest to get the POST data
> (base64 encoded binary) andthe URL parameters,  however,  if I introduce the
> SEDA
> call the same bean can't get the HTTPServletRequest. The salient bean code
> is:
>
>  public String controller(String body, Exchange exchange) {
>
>    try {
>      HttpServletRequest req =
> exchange.getIn().getBody(HttpServletRequest.class);
>
>
> Regards
> Wayne
>

Well you have to be careful now if you want to access
HttpServletRequest from another thread since the original
request/response could have been terminated (HttpSession is closed)
etc.

So I would suggest that you up-front gather the stuff you need from
HttpServletRequest *before* you send back that correlation id
response.
Then you are independent of the HttpSession and you can take all the
time on the world to process the message.





> On Wed, Jan 20, 2010 at 9:02 AM, Wayne Keenan <wayne.kee...@gmail.com>wrote:
>
>> Hi,
>>
>> I have a Jetty endpoint that when recieving a message will perform the
>> processing asynchronously and syncronously return a correlationId so the
>> client can come back later to another endpoint to see how processsing is
>> going.
>>
>> I found an example on the mailing list of how to pass the HttpSession
>> object using Java, but I can't seem to find out how
>> to reference or pass the HttpRequest using SpringDSL.  What I have at the
>> moment is:
>>
>>
>>         <route>
>>             <from uri="jetty:http://0.0.0.0:8080/endpoint"/>
>>             <inOnly uri="seda:sendASync"/>
>>             <transform>
>>                 <simple>${id}</simple>
>>             </transform>
>>         </route>
>>
>>         <route>
>>             <from uri="seda:sendASync"/>
>>             <to uri="bean:myBean"/>
>>         </route>
>>
>> Is there a way to say 'pass the HTTP stuff through please Mr SEDA'?
>> Should I really be setting a header property to that of a HTTP Object?  How
>> do I obtain it?
>> Should I architect this differently?
>>
>> All the best,
>> Wayne
>>
>



-- 
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Reply via email to