[
https://issues.apache.org/jira/browse/CXF-2021?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel Kulp resolved CXF-2021.
------------------------------
Resolution: Fixed
Fix Version/s: 2.1.4
Assignee: Daniel Kulp
> 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
> Assignee: Daniel Kulp
> Fix For: 2.1.4
>
>
> 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.