axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard Gruet (JIRA)" <j...@apache.org>
Subject [jira] Created: (AXIS2-1052) Complex fault detail lost in exception caught on client side
Date Mon, 21 Aug 2006 09:28:14 GMT
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: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message