Hi William,

I am using Camel 1.x, can you provide me a sample how to set headers in
Exchange for POJO based CXF webservices?

Thanks,
Trivedi

William Tam wrote:
> 
> Try it with 2.0 if it is possible.  Just set the Header.list in the
> Camel out headers.  If the headers that you are trying to set are
> defined in WSDL, you may not be able to set them with as the
> Header.list header since (I think) out parameters (Java objects) could
> be marshaled into SOAP headers.  If you are dealing with SOAP headers,
> another option is PAYLOAD mode.  It is a bit easier to work with SOAP
> headers.
> (see the section "How to deal with the message for a camel-cxf
> endpoint in PAYLOAD data format" in
> http://cwiki.apache.org/confluence/display/CAMEL/CXF).  In 2.0, the
> body of camel message is a CxfPayload<SoapHeader> object.   You can
> call CxfPayload.getHeaders() to get a List<Element> of SOAP headers.
> To set you response, you just set your CxfPayload object in out body
> of the exchange.
> 
> On Thu, Aug 27, 2009 at 12:06 AM, William Tam<[email protected]> wrote:
>> What version of Camel are you running?   I remember that we had some
>> issue with SOAP headers getting dropped in older release.
>> https://issues.apache.org/activemq/browse/CAMEL-1474.  Also, are the
>> headers that you are setting defined in your WSDL?
>>
>>
>>
>>
>> On Wed, Aug 26, 2009 at 5:02 PM, trivedi kumar
>> b<[email protected]> wrote:
>>>
>>> Hi,
>>>
>>> Sorry for the late response on this from my side, we could able to get
>>> the
>>> headers from the exchange but the problem that we are facing was how to
>>> set
>>> the headers on out message? Any sample code?
>>>
>>> Thanks,
>>> Trivedi
>>>
>>>
>>> William Tam wrote:
>>>>
>>>> Just took a peek at the doc.   The PAYLOAD mode doc in that area needs
>>>> improvement, too.  I will look into it.
>>>>
>>>> On Tue, Aug 25, 2009 at 11:01 AM, William Tam<[email protected]>
>>>> wrote:
>>>>> Will do, Claus. :-)   Getting SOAP headers and body have been
>>>>> documented for PAYLOAD mode (both 1.x and 2.x).  For MESSAGE mode, it
>>>>> is not applicable as there is no SOAP processing (but we will mention
>>>>> it).  We just have to add doc for POJO mode.
>>>>>
>>>>> On Tue, Aug 25, 2009 at 10:49 AM, Claus Ibsen<[email protected]>
>>>>> wrote:
>>>>>> On Tue, Aug 25, 2009 at 4:38 PM, William Tam<[email protected]>
>>>>>> wrote:
>>>>>>> In 1.x, we don't copy the Headers.list to Camel headers.  You can
>>>>>>> get
>>>>>>> the Headers.list by first getting the CXF Message from Camel
>>>>>>> Message.
>>>>>>> And then, you can get the header list from CXF message.
>>>>>>>
>>>>>>> org.apache.camel.Message in = exchange.getIn();
>>>>>>> org.apache.camel.component.cxf.CxfMessage body =
>>>>>>> (org.apache.camel.component.cxf.CxfMessage)in.getBody();
>>>>>>> org.apache.cxf.message.Message cxfMessage = body.getMessage();
>>>>>>> List<org.apache.cxf.headers.Header.Header> soapHeaders =
>>>>>>> cxfMessage.get(org.apache.cxf.headers.Header.Header.HEADER_LIST);
>>>>>>>
>>>>>>
>>>>>> No wonder CXF is hard, when you need all the "ugly" code above.
>>>>>>
>>>>>> As a lot of people are asking how to get SOAP headers from the 3
>>>>>> dataFormats.
>>>>>> And as well how to get the body as type X. Or what the default type
>>>>>> the body is returned as etc.
>>>>>>
>>>>>> It would be cool and nice if we added such description and sample on
>>>>>> the CXF wiki page.
>>>>>>
>>>>>> Start with Camel 2.0 and then later if time we can do it for 1.x as
>>>>>> well.
>>>>>>
>>>>>> Camel 2.0
>>>>>> ========
>>>>>> About body and headers using dataFormat=POJO
>>>>>> bla bla
>>>>>>
>>>>>> About body and headers using dataFormat=MESSAGE
>>>>>> bla bla
>>>>>>
>>>>>> About body and headers using dataFormat=RAW
>>>>>> bla bla
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> On Tue, Aug 25, 2009 at 10:18 AM, William Tam<[email protected]>
>>>>>>> wrote:
>>>>>>>> Are you using 2.x?  (My reply was assuming you were using 2.x).
>>>>>>>>
>>>>>>>> On Tue, Aug 25, 2009 at 10:16 AM, William Tam<[email protected]>
>>>>>>>> wrote:
>>>>>>>>> In POJO mode, the SOAP headers are copied to Camel IN headers as
>>>>>>>>> "org.apache.cxf.headers.Headers.list."  The header value is a List
>>>>>>>>> of
>>>>>>>>> CXF Header objects
>>>>>>>>> (http://svn.apache.org/repos/asf/cxf/trunk/api/src/main/java/org/apache/cxf/headers/Header.java).
>>>>>>>>>  That's how you can read request SOAP headers.  You can add/edit
>>>>>>>>> the
>>>>>>>>> Headers.list header of Camel OUT headers to modify the response
>>>>>>>>> SOAP
>>>>>>>>> headers.
>>>>>>>>>
>>>>>>>>> Hope this help.
>>>>>>>>>
>>>>>>>>> - William
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Tue, Aug 25, 2009 at 1:42 AM, Claus
>>>>>>>>> Ibsen<[email protected]>
>>>>>>>>> wrote:
>>>>>>>>>> On Thu, Aug 20, 2009 at 9:14 PM, trivedi kumar
>>>>>>>>>> b<[email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>> I have exposed webservice using cxf and dataformat is "POJO".
>>>>>>>>>>> With
>>>>>>>>>>> in the
>>>>>>>>>>> router, I want to get and set the soap headers in message
>>>>>>>>>>> exchange,
>>>>>>>>>>> can
>>>>>>>>>>> someone help me on this?
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Get the attention of Willem Jiang as he works on CXF.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Trivedi
>>>>>>>>>>> --
>>>>>>>>>>> View this message in context:
>>>>>>>>>>> http://www.nabble.com/setting-soap-headers-in-camel-cxf-router-tp25068148p25068148.html
>>>>>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Claus Ibsen
>>>>>>>>>> Apache Camel Committer
>>>>>>>>>>
>>>>>>>>>> Open Source Integration: http://fusesource.com
>>>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Claus Ibsen
>>>>>> Apache Camel Committer
>>>>>>
>>>>>> Open Source Integration: http://fusesource.com
>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/setting-soap-headers-in-camel-cxf-router-tp25068148p25157965.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
> 
> 

-- 
View this message in context: 
http://www.nabble.com/setting-soap-headers-in-camel-cxf-router-tp25068148p25195593.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to