[ https://issues.apache.org/jira/browse/CAMEL-5234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13266645#comment-13266645 ]
Babak Vahdat commented on CAMEL-5234: ------------------------------------- Just realized that you have already made use of setExchangePattern(ExchangePattern.InOut) API. I do agree to put a log-message to warn that the webservice-response will be thrown away. Do you have any suggestion for a meaningful and well-understandable log message to be used here? > Spring-WS does neither set message body nor message headers if exchange is > not outCapable > ----------------------------------------------------------------------------------------- > > Key: CAMEL-5234 > URL: https://issues.apache.org/jira/browse/CAMEL-5234 > Project: Camel > Issue Type: Bug > Components: camel-spring-ws > Affects Versions: 2.7.3, 2.8.0, 2.7.4, 2.7.5, 2.8.1, 2.8.2, 2.8.3, 2.8.4, > 2.9.0, 2.9.1, 2.9.2 > Reporter: Benjamin Gniza > Assignee: Babak Vahdat > Labels: in, out, out-capable, response, spring-ws > > 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=\"http://example.com/\">" // > + " <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 Pattern > .setBody().simple("<ex:getExampleResponse > xmlns:ex=\"http://example.com/\">" // > + " <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: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira