Hi,
I'm trying to generate SOAP11 faults from my servlet extending
AxisServlet.
I'm using the following constructor:
AxisFault(QName faultCode, String faultReason, String faultNode, String
faultRole, org.apache.axiom.om.OMElement faultDetail)
like this:
AxisFault(theCode, theMessage, theActor, "discarded in SOAPFault 1.1",
theDetails));
Reading the documentation, I understand that Axis is doing a mapping
depending on the version of SOAPFault the user wants:
As SOAP1.2 faults are a superset of SOAP1.1 faults, this type holds
soap1.2 fault information. When a SOAP1.1 fault is created, spurious
information can be discarded. Mapping
SOAP1.2
SOAP1.1
node
faultactor
reason(0).text faultstring
faultcode.value faultcode
faultcode.subcode (discarded)
detail
detail
role
(discarded)
My client correctly receives the error but the faultactor tag is never
present:
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Client.Header</faultcode>
<faultstring>Header couldn't be validated against the
xsd</faultstring>
<detail>
<Exception>com.almerys.medline.fsa.shared.ws.exception.ClientException:
Header couldn't be validated against the xsd
</Exception>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
Why is the actor always missing? Is there specific code to mimplement?
Thanks in advance
Pierre