Complex fault detail lost in exception caught on client side
------------------------------------------------------------
Key: AXIS2-1052
URL: http://issues.apache.org/jira/browse/AXIS2-1052
Project: Apache Axis 2.0 (Axis2)
Issue Type: Bug
Components: databinding
Affects Versions: 1.0
Environment: Windows XP SP2 / Tomcat 5.5
Reporter: Richard Gruet
Priority: Critical
(This bug description started in AXIS2-917, but it was judged more appropriate
to open a new issue since this is related to fault handling implementation, not
documentation).
If I define a custom fault with a *complex* structure, like this one:
<complexType name="MiFault">
<sequence>
<element name="error" minOccurs="0" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="errCode" type="string" minOccurs="0" />
<element name="errMsg" type="string" />
<element name="parameter" type="string" minOccurs="0" />
</sequence>
</complexType>
</element>
</sequence>
</complexType>
... assuming that I defined an operation throwMiFault() and generated the code
from the WSDL, Axis2 will have generated a ThrowMiFaultFaultException class.
When I raise a ThrowMiFaultFaultException instance from the throwMiFault
method, everything goes fine on the server side. But on the client side, when
catching the ThrowMiFaultFaultException, I found that the fault detail
(obtained via e.getFaultMessage()) has an empty 'error' array [please see
details in AXIS2-917]. However, the XML for the fault detail looks correct:
<xml-fragment
xmlns:axis2ns1="http://linedata.com/WS/tests/sampleService/parts/1.0">
<axis2ns1:error>
<axis2ns1:errCode>CODE1</axis2ns1:errCode>
<axis2ns1:errMsg>Error #1 message text</axis2ns1:errMsg>
<axis2ns1:parameter>param#1</axis2ns1:parameter>
</axis2ns1:error>
<axis2ns1:error>
<axis2ns1:errCode>CODE2</axis2ns1:errCode>
<axis2ns1:errMsg>Error #2 message text</axis2ns1:errMsg>
</axis2ns1:error>
</xml-fragment>
... which suggests a possible AXIOM error (Derek Foster suggested that it might
be related to AXIS2-928).
When I define a *simple* custom error like this one:
<element name='xxxFault'>
<complexType>
<sequence>
<element name='message' type='string'/>
</sequence>
</complexType>
</element>
... everything works fine and the xxxFaultException I get on the client side
contains the error detail (i.e. the message element). So the problem seems to
occur only with complex fault detail.
Richard
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]