Hi Trivedi, You can now find some samples in this test module: https://svn.apache.org/repos/asf/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/soap/headers/CxfMessageHeadersRelayTest.java. Its Camel context definition is here : https://svn.apache.org/repos/asf/camel/branches/camel-1.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/spring/message_headers_relay.xml
The test of interest is testInoutOutOfBandHeaderCXFClientRelayWithHeaderInsertion and the route that the test references is: <route> <from uri="cxf:bean:routerRelayEndpointWithInsertion"/> <process ref="InsertRequestOutHeaderProcessor" /> <to uri="cxf:bean:serviceRelayEndpointWithInsertion"/> <process ref="InsertResponseOutHeaderProcessor" /> </route> Basically, the test involves a SOAP client invoking the routerRelayEndpointWithInsertion (camel-cxf) endpoint. The InsertRequestOutHeaderProcessor adds a new SOAP header to the request message. The message gets send to a CXF service endpoint serviceRelayEndpointWithInsertion. A response is sent back to Camel. Finally, the InsertResponseOutHeaderProcessors add a new header to the response which the client can verify. Please note that the InsertResponseOutHeaderProcessor requires bug fix for (https://issues.apache.org/activemq/browse/CAMEL-1983). I have submitted a fix the 1.x branch. InsertRequestOutHeaderProcessor does not require any fixes. Cheers, William On Wed, Sep 2, 2009 at 9:10 AM, William Tam<[email protected]> wrote: > Sorry, i've been quite busy. I'll get to it today. > > On Wed, Sep 2, 2009 at 3:12 AM, trivedi kumar b<[email protected]> > wrote: >> >> Hi, >> >> Did you get a chance to look into this? >> >> Thanks, >> Trivedi >> >> >> William Tam wrote: >>> >>> Hi Trivedi, I'll try to get that today. >>> >>> On Fri, Aug 28, 2009 at 3:26 PM, trivedi kumar >>> b<[email protected]> wrote: >>>> >>>> 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. >>>> >>>> >>> >>> >> >> -- >> View this message in context: >> http://www.nabble.com/setting-soap-headers-in-camel-cxf-router-tp25068148p25252694.html >> Sent from the Camel - Users mailing list archive at Nabble.com. >> >> >
