WAS SOAPFault causing throws a WebServicesFault
When returning a SOAPFault from a SOAP handler I saw this in Websphere Application Server's (6.1.0) console:
A SOAP fault is still returned to the client but you get a WebServicesFault exception on both ends. Digging into Websphere's with the help of a decompiler shows that this is caused simply by no fault detail being passed. Simply adding a fault detail with a text of "error" gets rid of this error.
[11/05/11 18:20:51:654 EST] 00000047 WebServicesSe E com.ibm.ws.webservices.engine.transport.http.WebServicesServlet doPost WSWS3227E: Error: Exception:
WebServicesFault
faultCode: 666
faultString: myfaultstring
faultActor: myhandler
faultDetail:
myfaultstring
at com.ibm.ws.webservices.engine.xmlsoap.builders.WebServicesFaultProcessor.createFault(WebServicesFaultProcessor.java:420)
at com.ibm.ws.webservices.engine.xmlsoap.SOAPFault.getFault(SOAPFault.java:615)
at com.ibm.ws.webservices.engine.SOAPPart.getFault(SOAPPart.java:1097)
at com.ibm.ws.webservices.engine.SOAPPart.getFault(SOAPPart.java:754)
at com.ibm.ws.webservices.engine.Message.getFault(Message.java:935)
....
Or when throwing a custom SOAPFaultException:[11/05/11 18:32:05:678 EST] 00000065 WebServicesSe E com.ibm.ws.webservices.engine.transport.http.WebServicesServlet doPost WSWS3227E: Error: Exception:
WebServicesFault
faultCode: myWebServiceFunction
faultString: my test
faultActor: testActor
faultDetail:
my test
at com.ibm.ws.webservices.engine.WebServicesFault.makeFault(WebServicesFault.java:189)
at com.ibm.ws.webservices.engine.dispatchers.java.SessionDispatcher.invoke(SessionDispatcher.java:213)
at com.ibm.ws.webservices.engine.PivotHandlerWrapper.invoke(PivotHandlerWrapper.java:248)
...
A SOAP fault is still returned to the client but you get a WebServicesFault exception on both ends. Digging into Websphere's with the help of a decompiler shows that this is caused simply by no fault detail being passed. Simply adding a fault detail with a text of "error" gets rid of this error.
Comments
Post a Comment