Hi Malaka, Thank you for the response. It is working for single header elements without sub elements.
Thanks, Suhan On Wed, Jun 3, 2015 at 5:23 PM, Malaka Silva <[email protected]> wrote: > Hi Suhan, > > Try the following, > > <?xml version="1.0" encoding="UTF-8"?> > <proxy xmlns="http://ws.apache.org/ns/synapse" > name="PayloadFactoryHeaderTest" > transports="https,http" > statistics="disable" > trace="disable" > startOnLoad="true"> > <target> > <inSequence> > <loopback/> > </inSequence> > <outSequence> > <log level="full"/> > <payloadFactory media-type="xml"> > <format> > <theData xmlns="http://some.namespace"> > <theHeader>$1</theHeader> > <theBody>$2</theBody> > </theData> > </format> > <args> > <arg evaluator="xml" expression="$header"/> > <arg evaluator="xml" expression="$body/*"/> > </args> > </payloadFactory> > <enrich> > <source xmlns:the="http://some.namespace" > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" > clone="true" > xpath="//the:theHeader/soap:Header/*"/> > <target xmlns:the="http://some.namespace" > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" > xpath="//the:theHeader/soap:Header/."/> > </enrich> > <log level="full"/> > <send/> > </outSequence> > </target> > <description/> > </proxy> > > On Wed, Jun 3, 2015 at 4:50 PM, Suhan Dharmasuriya <[email protected]> > wrote: > >> Hi, >> >> ESB 4.8.1 >> I have been testing the following 2 scenarios in a fresh ESB 4.8.1 pack. >> >> As per my observations the header tag extracted is behaving in two >> different ways in the following >> two scenarios. >> >> *Proxy* >> <proxy name="PayloadFactoryHeaderTest" >> transports="http" >> startOnLoad="true" >> trace="disable"> >> <target> >> <inSequence> >> <loopback/> >> </inSequence> >> <outSequence> >> <log level="full"/> >> <payloadFactory media-type="xml"> >> <format> >> <theData xmlns="http://some.namespace"> >> <theHeader>$1</theHeader> >> <theBody>$2</theBody> >> </theData> >> </format> >> <args> >> <arg evaluator="xml" expression="$header/*"/> >> <arg evaluator="xml" expression="$body/*"/> >> </args> >> </payloadFactory> >> <log level="full"/> >> <send/> >> </outSequence> >> </target> >> </proxy> >> >> *scenario 1* >> *SOAP request* >> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> >> <soap:Header> >> <hd:inHeaderA xmlns:hd="http://some.namespace >> ">InputHeaderValueA</hd:inHeaderA> >> <hd:inHeaderB xmlns:hd="http://some.namespace >> ">InputHeaderValueB</hd:inHeaderB> >> </soap:Header> >> <soap:Body> >> <input xmlns="http://some.namespace"> >> <customData1>inputData1</customData1> >> <customData2>inputData2</customData2> >> </input> >> </soap:Body> >> </soap:Envelope> >> >> *Response* >> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> >> <soap:Header> >> <hd:inHeaderA xmlns:hd="http://some.namespace >> ">InputHeaderValueA</hd:inHeaderA> >> <hd:inHeaderB xmlns:hd="http://some.namespace >> ">InputHeaderValueB</hd:inHeaderB> >> </soap:Header> >> <soap:Body> >> <theData xmlns="http://some.namespace"> >> <theHeader>*InputHeaderValueAInputHeaderValueB*</theHeader> >> <theBody> >> <input> >> <customData1>inputData1</customData1> >> <customData2>inputData2</customData2> >> </input> >> </theBody> >> </theData> >> </soap:Body> >> </soap:Envelope> >> >> *scenario 2* >> *SOAP request* >> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> >> <soap:Header> >> <hd:inHeaderA xmlns:hd="http://some.namespace"> >> <sub>InputHeaderValueA</sub> >> </hd:inHeaderA> >> <hd:inHeaderB xmlns:hd="http://some.namespace"> >> <sub>InputHeaderValueB</sub> >> </hd:inHeaderB> >> </soap:Header> >> <soap:Body> >> <input xmlns="http://some.namespace"> >> <customData1>inputData1</customData1> >> <customData2>inputData2</customData2> >> </input> >> </soap:Body> >> </soap:Envelope> >> >> *Response* >> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> >> <soap:Header> >> <hd:inHeaderA xmlns:hd="http://some.namespace"> >> <sub>InputHeaderValueA</sub> >> </hd:inHeaderA> >> <hd:inHeaderB xmlns:hd="http://some.namespace"> >> <sub>InputHeaderValueB</sub> >> </hd:inHeaderB> >> </soap:Header> >> <soap:Body> >> <theData xmlns="http://some.namespace"> >> <theHeader> >> *<hd:inHeaderA xmlns:hd="http://some.namespace >> <http://some.namespace>">* >> * <sub>InputHeaderValueA</sub>* >> * </hd:inHeaderA>* >> * <hd:inHeaderB xmlns:hd="http://some.namespace >> <http://some.namespace>">* >> * <sub>InputHeaderValueB</sub>* >> * </hd:inHeaderB>* >> </theHeader> >> <theBody> >> <input> >> <customData1>inputData1</customData1> >> <customData2>inputData2</customData2> >> </input> >> </theBody> >> </theData> >> </soap:Body> >> </soap:Envelope> >> >> Here, the header with sub elements is extracted successfully with tags >> (scenario 2), whereas the header with a single element (without any sub >> elements in scenario 1) has failed to extract the tags in the payload. >> >> Shouldn't the behaviour of ESB be consistent in both the scenarios? >> >> Thanks, >> Suhan >> >> >> >> -- >> Suhan Dharmasuriya >> Software Engineer - Test Automation >> >> *WSO2, Inc. * >> >> lean . enterprise . middleware >> Tel: +94 112 145345 >> Mob: +94 779 869138 >> Blog: http://suhan-opensource.blogspot.com/ >> >> _______________________________________________ >> Dev mailing list >> [email protected] >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> > > > -- > > Best Regards, > > Malaka Silva > Senior Tech Lead > M: +94 777 219 791 > Tel : 94 11 214 5345 > Fax :94 11 2145300 > Skype : malaka.sampath.silva > LinkedIn : http://www.linkedin.com/pub/malaka-silva/6/33/77 > Blog : http://mrmalakasilva.blogspot.com/ > > WSO2, Inc. > lean . enterprise . middleware > http://www.wso2.com/ > http://www.wso2.com/about/team/malaka-silva/ > <http://wso2.com/about/team/malaka-silva/> > > Save a tree -Conserve nature & Save the world for your future. Print this > email only if it is absolutely necessary. > -- Suhan Dharmasuriya Software Engineer - Test Automation *WSO2, Inc. * lean . enterprise . middleware Tel: +94 112 145345 Mob: +94 779 869138 Blog: http://suhan-opensource.blogspot.com/
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
