Benjamin Gniza created CAMEL-5234: ------------------------------------- Summary: 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.9.2, 2.9.1, 2.9.0, 2.8.4, 2.8.3, 2.8.2, 2.8.1, 2.7.5, 2.7.4, 2.8.0, 2.7.3 Reporter: Benjamin Gniza
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