[ https://issues.apache.org/jira/browse/CAMEL-5234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13288131#comment-13288131 ]
Babak Vahdat edited comment on CAMEL-5234 at 6/3/12 11:30 AM: -------------------------------------------------------------- Now I'm a bit confused :-( Currently we have the following by SpringWebserviceProducer {code} if (ExchangeHelper.isOutCapable(exchange)) { exchange.getOut().copyFrom(exchange.getIn()); exchange.getOut().setBody(body); } {code} Now do you mean we should change this to {code} if (ExchangeHelper.isOutCapable(exchange)) { exchange.getOut().copyFrom(exchange.getIn()); exchange.getOut().setBody(body); } else { exchange.getIn().setBody(body); } {code} And what about camel-restlet? Seems it doesn't care about MEP: https://fisheye6.atlassian.com/browse/~br=trunk/camel/trunk/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java?hb=true#to266 Also do we maybe have a documentation about these MEP rules somewhere where I can learn it from? was (Author: bvahdat): Now I'm a bit confused :-( Currently we have the following by SpringWebserviceProducer {code} if (ExchangeHelper.isOutCapable(exchange)) { exchange.getOut().copyFrom(exchange.getIn()); exchange.getOut().setBody(body); } {code} Now do you mean we should change this to {code} if (ExchangeHelper.isOutCapable(exchange)) { exchange.getOut().copyFrom(exchange.getIn()); exchange.getOut().setBody(body); } else { exchange.getIn().setBody(body); } {code} And what about camel-restlet? Seems it doesn't care about MEP: https://fisheye6.atlassian.com/browse/~br=trunk/camel/trunk/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java?hb=true#to241 Also do we maybe have a documentation about the MEP rules somewhere? > 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.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=\"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