cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yunfeng Fei (JIRA)" <j...@apache.org>
Subject [jira] Created: (CXF-2021) SOAPFault detail is not set in WebServiceException/SOAPFaultException that is thrown from dispatch.invoke
Date Tue, 03 Feb 2009 18:51:59 GMT
SOAPFault detail is not set in WebServiceException/SOAPFaultException that is thrown from dispatch.invoke
---------------------------------------------------------------------------------------------------------

                 Key: CXF-2021
                 URL: https://issues.apache.org/jira/browse/CXF-2021
             Project: CXF
          Issue Type: Bug
          Components: JAX-WS Runtime
    Affects Versions: 2.1.3
         Environment: Windows XP, Jdk 1.5, tomacat 5.5.
            Reporter: Yunfeng Fei


I'm using the dispatch mechanism to invoke a soap service in message mode.
 
Upon catching the WebServiceException thrown by the dispatch.invoke method, i try to extract
the soap fault information from it (if it is a SOAPFaultException). That's when i realized
the SOAPFault detail is missing (is null). The code i'm using is shown below. Also shown is
the returned soap fault with detail when the same service is called using SOAPUI.

It appears the SOAPFault detail is not set when it is wrapped into a SOAPFaultException and
thrown as a WebServiceException.

        //It appears that the JAX-WS implementation in 
	//cxf simply does not set the optional SOAPFault Detail object 
	//in the SOAPFault object wrapped by the SOAPFaultException
        private SOAPMessage createFaultMessageFromWebServiceException(WebServiceException
wse) throws SOAPException {
		SOAPMessage msg = getNewSOAPMessage();
		if (wse instanceof SOAPFaultException) {
			SOAPFault fault = ((SOAPFaultException) wse).getFault();
                        //fault.hasDetail() return false
			msg.getSOAPBody().addFault(fault.getFaultCodeAsQName(), fault.getFaultString());
		} else {
			msg.getSOAPBody().addFault().setFaultString(wse.getMessage());
		}
		return msg;
	}

The same service invoked through SOAPUI returns SOAPFault message with detail.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <soap:Fault>
         <faultcode>soap:Server</faultcode>
         <faultstring>Fault occurred while processing.</faultstring>
         <detail>
            <ns8:apiFault errorCode="item not found" objectName="0" objectType="categoryset"
.../>
         </detail>
      </soap:Fault>
   </soap:Body>
</soap:Envelope>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message