Hi,

Since JAXWS let you handle the low level message, you can use the SOAPMessageProvider as the camel-cxf endpoint's service class,
then you can handle the SOAPMessage in your process or bean .

Here is a unit test[1] to show how to Use the SOAPMessageProvider in camel-cxf.

For the IN-OUT chain , camel's pipeline[2] will take care of them.

[1]https://svn.apache.org/repos/asf/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfSoapMessageProviderTest.java
[2]http://activemq.apache.org/camel/pipes-and-filters.html

Willem
Aaron Mulder wrote:
Is there a way to set up Camel to do something like this:

- accept an incoming Web Services call
- invoke a bean to validate the arguments provided in the SOAP call
- if invalid, return an error response to the original Web Services caller
- if valid, call Velocity or XSLT or something to transform the SOAP
input into another XML format
- pass the new XML document as the argument to a remote HTTP service
- get the response from the remote HTTP service, transform it, and
return that as the response to the original SOAP call

I guess my issues are, the Camel-CXF documentation and example aren't
real clear to me, and I'm not clear on whether you can set up this
whole chain to be IN-OUT so the response from the remote HTTP service
can propagate back through additional transformations and be the
response for the original SOAP call.

I expect it would be easier to have CXF invoke a Spring Bean on the
original Web Services call and that bean does all the other work
that's described.  But I'm wondering if it's possible to set it up as
a Camel route instead, which would help decouple all the steps.

Thanks,
       Aaron


Reply via email to