camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Claus Ibsen (JIRA)" <>
Subject [jira] [Commented] (CAMEL-5234) Spring-WS does neither set message body nor message headers if exchange is not outCapable
Date Sat, 02 Jun 2012 18:40:22 GMT


Claus Ibsen commented on CAMEL-5234:

Yes the response from Spring-WS should be used regardless of the MEP pattern. Only if the
actual invoked web service method is a OneWay web service, then it should not use the response
from the WS. eg bottom line its the nature of the WS method that dictates this, not the MEP
flag in Camel.
> Spring-WS does neither set message body nor message headers if exchange is not outCapable
> -----------------------------------------------------------------------------------------
>                 Key: CAMEL-5234
>                 URL:
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-spring-ws
>    Affects Versions: 2.7.5, 2.8.4, 2.9.2
>            Reporter: Benjamin Gniza
>            Assignee: Babak Vahdat
>              Labels: in, out, out-capable, response, spring-ws
>             Fix For: 2.9.3, 2.10.0
> Spring-WS component does not behave as expected from pipes and filters pattern if exchange
is not _outCapable_.
> If _ExchangeHelper_._isOutCapable_ returns false for the given _exchange_ the IN-message
is returned instead of the WS-Response.
> Example:
> {code:title=ExampleRoute}
>         from("timer://foo?fixedRate=true&period=1000")//
>                 .setBody().simple("<ex:getExampleResponse xmlns:ex=\"\">"
>                         + "       <id>1</id>" //
>                         + "     </ex:getExampleResponse>")//
>                 .to("spring-ws:http://localhost:9000/Example")//
>                 .to("file://responses");
> {code}
> In the example above I would expect the WS-response written to the files in the responses
directory. Currently (since 2.7.3) the IN message is written to the files.
> This is caused by _SpringWebserviceProducer#process_ because it only sets headers and
body for the OUT-message if _isOutCapable_ is _true_.
> Workaround (maybe this has side effects!):
> {code:title=ExampleRoute}
>                 from("timer://foo?fixedRate=true&period=1000")//
>                 .setExchangePattern(ExchangePattern.InOut) // <-- Override with InOut
>                 .setBody().simple("<ex:getExampleResponse xmlns:ex=\"\">"
>                         + "       <id>1</id>" //
>                         + "     </ex:getExampleResponse>")//
>                 .to("spring-ws:http://localhost:9000/Example")//
>                 .to("file://responses");
> {code}
> This behavior has been implemented to fix CAMEL-3974. From my point of view its counter
intuitive since other processing-steps don't check the exchange's _outCapability_.
> It took me several hours to find out why I always got the IN message back, although the
webservice was called correctly and returned correct results.
> Maybe an option should be provided to control this behavior. At least a log-message should
be written to explain, that the webservice-reponse is thrown away.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message