Thanks for the reply. But I do have an issue. Actually I am supposed to
capture the SOAP XML request and it seems that the request that I capture is
NOT really a SOAP request.
Hence , it seems that there is a major change in the Interceptors that I am
using. I guess I should be using SOAP interceptors... Can I know which
interceptor should I be using and more importantly how do I get SOAP REQUEST
/ RESPONSE XML message instead of a jbi message ?
Is this how I should be defining my XBean ?
<cxfse:endpoint useJBIWrapper="false" >
<cxfse:pojo>
<bean class="com.powercatalyst.ods.osl.pricedata.OdsPriceDataImpl"
/>
</cxfse:pojo>
: :
I need to be able to retrieve the request XML from the SOAP Interceptor. I
would appreciate if that is also stated to me.
Thanks and regards,
Milan
Freeman Fang wrote:
>
> comment inline
>
> doshi_milan wrote:
>> Thanks for the reply.Actually I was able to retreieve atleast the
>> Request
>> XML.
>>
>> I, now, have a class DHCLOutInterceptor extends
>> org.apache.cxf.interceptor.LoggingOutInterceptor .I override the
>> handleMessage(org.apache.cxf.message.Message message) method as follows
>> :
>>
>> public void handleMessage(org.apache.cxf.message.Message message) {
>>
>> MessageExchange exchange =
>> message.get(javax.jbi.messaging.MessageExchange.class);
>> NormalizedMessage nm = exchange.getMessage("out");
>> Source content = nm.getContent();
>> try {
>> String body = (new
>> SourceTransformer()).toString(content);
>> System.out.println("ODSLogOutInterceptor:handleMessage:
>> body:\n"+body);
>> } catch (TransformerException e) {
>> ::
>> }
>>
>> Strangely, although I have configured it as an OUTBOUND intrerafce I
>> AM
>> NOT ABLE TO access the response XML. The NormalizedMessage object
>> continues
>> to be null. <br/> If I make it 'in' instead of 'out' I am able to get the
>> entire request XML (which is very good).However what do I do to get the
>> outbound response XML? Can someone please explain me what am I missing ?
>>
>>
> If you want to see the outbound message of cxf se endpoint, you should
> write an interceptor with phase like PRE_STREAM, the
> LoggingOutInterceptor should be exactly same as your scenario, take a
> look at class.
>> The bean.xml looks like this :
>>
>> <cxfse:endpoint >
>> <cxfse:pojo>
>> <bean class="com.company.ods.osl.mydata.OdsPriceDataImpl"
>> />
>> </cxfse:pojo>
>>
>> <cxfse:inFaultInterceptors>
>> <bean class="com.company.ods.osl.mydata.ODSFaultInterceptor"/>
>> </cxfse:inFaultInterceptors>
>> <cxfse:outFaultInterceptors>
>> <bean class="com.company.ods.osl.mydata.ODSFaultInterceptor"/>
>> </cxfse:outFaultInterceptors>
>>
> You need configure outInterceptors here, not outFaultInterceptors
>> Thanks for any feedback!
>>
>> Milan
>>
>> Freeman Fang wrote:
>>
>>> doshi_milan wrote:
>>>
>>>> I am using CXF within Servicemix.
>>>>
>>>> I want to know how would I be able to intercept XML request / response
>>>> within my code ? I have created a user defined interceptor which
>>>> extends
>>>> from org.apache.cxf.interceptor.LoggingInInterceptor and similarly
>>>> another
>>>> use defined Intercepor which extends from
>>>> org.apache.cxf.interceptor.LoggingOutInterceptor. I have this in the
>>>> xbean.xml file as follows :
>>>>
>>>>
>>>>
>>>>
>>> I can't see your xbean.xml content here, :-)
>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> I am able to override the handleMessage method. I know that
>>>> LoggingInInterceptor can directly log the XML but what I want is to
>>>> retrieve
>>>> certain values etc within the interceptor. Thus for now, I want to see
>>>> how
>>>> can I retrieve the ENTIRE message within the interceptor. This should
>>>> be
>>>> very easy as the logging method probably does it but it is not
>>>> available
>>>> to
>>>> us. I failed to get any sample or documentation. I do not even know if
>>>> LoggingInInterceptor /LoggingOutInterceptor are thr right interceptors
>>>> to
>>>> be
>>>> used.
>>>>
>>>>
>>> The LoggingInInterceptor should be what you want, you mean you can't
>>> find the source code of LoggingIn/OutInterceptor? They are in cxf code
>>> base, and you can find those from
>>> http://svn.apache.org/repos/asf/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/
>>>
>>>> Any help will be much appreciated.
>>>>
>>>> Thanks!
>>>> Milan Doshi
>>>>
>>>>
>>>
>>>
>>
>>
>
>
>
--
View this message in context:
http://www.nabble.com/Retrieving-SOAP-Header-and-SOAP-Body-using-Interceptors-tp20466758p20491593.html
Sent from the ServiceMix - Dev mailing list archive at Nabble.com.