camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sergey Beryozkin <sberyoz...@gmail.com>
Subject Re: DefaultCxfRsBinding only uses Exchange.getOut()
Date Wed, 11 Dec 2013 17:35:47 GMT
Hi
On 11/12/13 17:02, Dominik Amon wrote:
> Hi Sergey,
>
> i created a JIRA ( https://issues.apache.org/jira/browse/CAMEL-7061
> <https://issues.apache.org/jira/browse/CAMEL-7061>  ).
>
Thanks
>
>
>
> Sergey Beryozkin-3 wrote
>> What I'm not understanding yet is what kind of response you actually get
>> if IN message is checked ?
>
> The problem in my case is that the last action of the TryProcessor is moving
> the out message to the in message, thus setting the out message to null.
> Now when the CxfRsInvokers returnResponse method is called, which populates
> the response using the DefaultCxfRsBinding (calling
> endpoint.getBinding().populateCxfRsResponseFromExchange(camelExchange,
> cxfExchange))the exchange looks like:
>
> Exchange
>      in : [MyPayload]
>      out : null
>
> and the DefaultCxfRsBinding currently only uses the out message and if the
> out message is null cxfrs returns  the http response code 204.
>
> When removing the <doTry> block the exchange that arrives at the
> DefaultCxfRsBinding looks like:
>
> Exchange
>      in : [MyPayload]
>      out : [MyPayload]
>
> an everything is fine.
>
Clear, thanks
>
> Sergey Beryozkin-3 wrote
>> I'm also slightly concerned that if if we have roots explicitly checking
>> for 204 (or indeed roots dealing with HTTP responses having no actual
>> body) then this patch might affect them ?
>
> Hmm, the Camel FAQ is saying that only using the in message should be fine:
> Camel FAQ
> <http://camel.apache.org/using-getin-or-getout-methods-on-exchange.html>
>
> But maybe in some circumstances it will affect some routes, I have to think
> about it.
>
Please do.
>
> Sergey Beryozkin-3 wrote
>> May be, in case of CXF RS binding, checking IN should be optional,
>> example, if an exchange property is set allowing for it then do it,
>> otherwise not. What do you think ?
>
> Well, in my opinion it should in every case be consintent to the
> DefaultCxfBinding. If it is made optional which I think is not a bad idea it
> should be made optional for both DefaultCxfBinding and DefaultCxfRsBinding.
>
Typical SOAP response will not be empty, may be only in advanced WS-RM 
scenarios, so I guess it is very safe for the DefaultCxfBinding.

That said, your patch is likely very safe, now that I think about it, if 
we have routes with 204 or 302, etc, they won't have the response body 
anyway, please think a bit more about such cases, but I guess your patch 
would be good to go

Thanks, Sergey
> Regards
> Dominik
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/DefaultCxfRsBinding-only-uses-Exchange-getOut-tp5744605p5744622.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>


Mime
View raw message