Axis - 

If a service method desires to conform to the JAX-RPC standard, should
it throw javax.xml.rpc.soap.SOAPFault instead of
org.apache.axis.AxisFault?

If the code should be ideally throwing SOAPFault, should Axis be passing
back to the client more than just the faultstring from the SOAPFault
exception object?

The default behavior for unknown exception types such as SOAPFault does
not allow the transmission of custom faultcodes, faultactors, and
faultdetails to the client.

The intent of the proposed modification is to allow custom faultcodes,
faultactors, and faultdetails to be added to the fault while throwing a
JAX-RPC compliant fault in the service method.

To achieve this goal, the AxisFault.makeFault method needs to be
enhanced to convert the SOAPFault properties into the corresponding
AxisFault properties.

For example, a simple addition to AxisFault.makeFault()  - 

if (e instanceof SOAPFault) {
        SOAPFault exSOAP = (SOAPFault)e;

        return new AxisFault(new
QFault(exSOAP.getFaultCode()),exSOAP.getFaultString(),exSOAP.getFaultAct
or(),convertDetails(exSOAP.getDetail()));
}

The convertDetail method would convert the javax.xml.soap.Detail object
to Element[].


Is this a valid proposal?



/Chris



Reply via email to