Did you try to use the cxfbean[1]?
[1] http://camel.apache.org/cxf.html#CXF-CXFBeanComponent%282.0orlater%29

Willem

Alexandros Karypidis wrote:
Hello,

I'm going through the tutorial: http://camel.apache.org/tutorial-example-reportincident-part5.html

Basically, there's two things I don't like about CXF's integration with Camel:

(1) I must cast the input message to a parameter class manually
(2) I must call a processor set the output message

The points are illustrated below:

<camel-cxf:cxfEndpoint id="myCXFBean" serviceClass="some.jaxws.WebServiceClass" ... />
<camel:camelContext id="myCamelContext" trace="true">
<camel:route>
<camel:from uri="cxf:bean:myCXFBean" />
<camel:to uri="log:logger" />
(1) <camel:convertBodyTo type="my.ParameterClass" />
(2) <camel:process ref="processorThatSetsOutMessage" />
</camel:route>
</camel:camelContext>

My problem with the approach is that:

Regarding (1): since a web service has multiple operations, each with different parameters, one would need to cast to a different class type, depending on which operation is being called.

Regarding (2): I simply need Camel to do some magic prior to the web service implementation (i.e. in the "processor" I just need to call the method of "some.jaxws.WebServiceClass" that corresponds to the input message); is there a way to configure this simple behaviour, with the return value of the invocation automatically being set to become the body of the output message (i.e. not need to set exchange.getOut().out.setBody() explicitly)?



Reply via email to