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