Thanks Willem for the answer, I'll see if that gets me any further.
I am using Camel 2.10.3 for the record. All I want to do is add some
elements to an empty SOAP header.

On Mon, Feb 4, 2013 at 4:02 AM, Willem jiang <willem.ji...@gmail.com> wrote:
>  Hi ,
>
> Please see my comments in the below mail.
>
> --
> Willem Jiang
>
> Red Hat, Inc.
> FuseSource is now part of Red Hat
> Web: http://www.fusesource.com | http://www.redhat.com
> Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) 
> (English)
>           http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese)
> Twitter: willemjiang
> Weibo: 姜宁willem
>
>
> Sent with Sparrow (http://www.sparrowmailapp.com/?sig)
>
>
> On Friday, February 1, 2013 at 11:51 PM, Nico Mommaerts wrote:
>
>> Hey,
>>
>> I'm having a hard time understanding the dataformats in cxf
>> (http://camel.apache.org/cxf.html#CXF-Thedescriptionsofthedataformats)
>> and what they are for.
>>
>> The use case I'm implementing is like the cxf proxy example
>> (http://camel.apache.org/cxf-proxy-example.html) except that I want to
>> add some Soap Headers to the message that is sent to the real
>> webservice.
>> I succeeded in doing so by following the example, and getting the
>> Header element from the Document passed to my enrichBean. However, I
>> don't understand why this works:
>>
>> * How does Camel know to call which method in the enrichBean and why
>> does it know it has to pass a Document? Couldn't find anything on the
>> website about this.
>
> You can change the parameter of the enrichBean as you want.
> Camel will try to find a right converter for you.
>> * It says here 
>> http://camel.apache.org/cxf.html#CXF-SOAPheadersarenotavailableinMESSAGEmode
>> that SOAP headers are not available in the MESSAGE dataformat, how
>> come I can access them and change them before sending to the real
>> webservice?
>
> You will not be able to access the SOAP header from the message header of the 
> camel message in MESSAGE data format, as the interceptor of handling the SOAP 
> header will not be called if you use the camel version lower than 2.10.1.
>
> In the example you are manipulate the DOM tree which is turned from the input 
> stream, so that is another story.
>> * If I try any other dataformat then MESSAGE, it doesn't work. I get a
>> 500, or just an empty SOAP response, or a NullpointerException. What
>> exactly does the dataformat apply to? The content of the exchange that
>> is being sent to the next component in my route?
>
> It's important for Camel to load right a type converter for you when you 
> using other data formate.
> Please take some time to go through the  converters[1] which is used by the 
> PayLoad data formate .
>> * Is this the correct (best) way to add a soapheader?
>
> It is real depends what's you want to do.
> If you don't need to change the soap header much, you can even use the xslt 
> component[1], it could be more straight for manipulate the underlay input 
> stream message.
>
>>
>> Thanks,
>> Nico
>
> [1]https://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java
>
>

Reply via email to