Hi Markus,

I see the problem now, the return soap fault message has no detail element but cxf bc provider will always check the detail element if it's fault soap message, I go through soap1.1 specs and the "detail" element isn't mandatory if something wrong during soap header(just like your case) processing, so cxf bc need handle this case.

I raise jira[1] to track it.

[1]https://issues.apache.org/activemq/browse/SM-1497

Regards
Freeman

Markus Wolf wrote:
Hi Freeman,

this is the log output from smx. I think it could be enought, since an NPE is thrown:

Aug 4, 2008 5:01:55 PM org.apache.cxf.interceptor.LoggingInInterceptor logging
INFO: Inbound Message
----------------------------
Encoding: UTF-8
Headers: {Content-Length=[333], Host=[endion-test.office.nmmn.com:8193], User-Agent=[Jakarta Commons-HttpClient/3.0.1], SOAPAction=[""], content-type=[text/xml;charset=UTF-8]}
Messages:
Message:

Payload: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:sch="http://www.llynch.net/endion/schemas";>
   <soapenv:Header/>
   <soapenv:Body>
      <sch:profileListRequest>
         <!--Optional:-->
         <sch:type>Newsletter</sch:type>
      </sch:profileListRequest>
   </soapenv:Body>
</soapenv:Envelope>
--------------------------------------
Aug 4, 2008 5:01:55 PM org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose
INFO: Outbound Message
---------------------------
Encoding: UTF-8
Headers: {SOAPAction=[""], Accept=[*]}
Messages:
Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";><soap:Body><sch:profileListRequest xmlns:sch="http://www.llynch.net/endion/schemas";>

<sch:type xmlns:sch="http://www.llynch.net/endion/schemas";>Newsletter</sch:type>
      </sch:profileListRequest></soap:Body></soap:Envelope>
--------------------------------------
Aug 4, 2008 5:01:55 PM org.apache.cxf.interceptor.LoggingInInterceptor logging
INFO: Inbound Message
----------------------------
Encoding: UTF-8
Headers: {Content-Length=[286], connection=[close], Date=[Mon, 04 Aug 2008 15:01:55 GMT], SOAPAction=[""], Server=[Apache-Coyote/1.1], content-type=[text/xml;charset=utf-8], Accept=[text/xml, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2]}
Messages:
Message:

Payload: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";><SOAP-ENV:Header/><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Client</faultcode><faultstring xml:lang="en">No WS-Security header found</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
--------------------------------------
Aug 4, 2008 5:01:55 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
java.lang.NullPointerException
at org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleJBIFault(JbiInWsdl1Interceptor.java:230) at org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1Interceptor.java:151) at org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1Interceptor.java:61) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221) at org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageObserver.java:141) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1996) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1832) at org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:47) at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:159) at org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:230) at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490) at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610) at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172) at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167) at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
    at java.lang.Thread.run(Thread.java:595)
Aug 4, 2008 5:01:55 PM org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose
INFO: Outbound Message
---------------------------
Encoding: UTF-8
Headers: {SOAPAction=[""]}
Messages:
Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";><soap:Body /></soap:Envelope>
--------------------------------------



Hi Markus,

Would you please dump the on-wire soap fault message and the LOG of servicemix?
Another guy encounter similar issue but I just can't reproduce it.

Thanks
Freeman


Markus Wolf wrote:
Hi Freeman,

I noticed that there is still one thing missing, but is is not that important for me. If the authentication fails on the 3rd-party service a soap-fault with an error message is returned. This is not correctly returned from the proxy to the client. The client receives an empty soap body.

Markus


Reply via email to