On Tue, Sep 14, 2010 at 10:23 AM, Christian Müller <christian.muel...@gmail.com> wrote: > Hello Claus! > > That's not (in my opinion) how it works currently. At present I work on a > route which looks like this: > > errorHandler( > defaultErrorHandler() > .retryAttemptedLogLevel(LoggingLevel.DEBUG) > .retriesExhaustedLogLevel(LoggingLevel.INFO)); > > onException(IllegalArgumentException.class) > .handled(true) > .maximumRedeliveries(0) > .beanRef("myResultProvider", "failureResponse"); > > from("cxf:bean:MyCoolService") > .processRef("myValidator") // validates conditional rules > .inOut("direct:mySubroute") > .beanRef("myResultProvider", "successResponse") > > > If my validator throws a IllegalArgumentException and the result provider > writes the response into the in message, the web service will return null. > But if I write the response into the out message, the web service will > return it. So, I changes my bean to the following "pattern": >
Well that could CXF Bean component having a bug. If you decide to use a Processor and work on Exchange then you use the low level Camel API and then you have to handle the IN/OUT stuff yourself. > if (exchange.getPattern().isOutCapable()) { > exchange.getOut().setBody(response); > } else { > exchange.getIn().setBody(response); > } > > And that's the same how the org.apache.camel.processor.ConvertBodyProcessor > works (I know you know this, but for the other guys.. :o) ) > > public class ConvertBodyProcessor implements Processor { > ... > public void process(Exchange exchange) throws Exception { > Message in = exchange.getIn(); > if (charset != null) { > exchange.setProperty(Exchange.CHARSET_NAME, charset); > } > Object value = in.getMandatoryBody(type); > > if (exchange.getPattern().isOutCapable()) { > Message out = exchange.getOut(); > out.copyFrom(in); > out.setBody(value); > } else { > in.setBody(value); > } > } > ... > } > > Should our custom processors/beans/.. not work in the same way? > > Cheers, > Christian > -- Claus Ibsen Apache Camel Committer Author of Camel in Action: http://www.manning.com/ibsen/ Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus