axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aoife Kavanagh <aoife.kavan...@meridianp2p.com>
Subject unable to deserialize complex type
Date Fri, 22 Oct 2004 11:40:56 GMT
Hi,

I am working with axis 1.2_rc1 and I am in the process of testing my web 
client with an off-site third party web service which I have no access 
to.  My service client stubs were generated using wsdl2java from a WSDL 
file that includes a number of xsd files.  I am consistently getting an 
error when the Axis libraries attempt to deseralize the return ErrorList 
contained with the Acknowledgement where the latter is a complex type.  
I have listed the AxisFault, the XSD definition and the return SOAP 
message (which looks correct to me) below.  I have done a number of 
searches to try and find out what the problem is but I have not found 
anything that can help me fix this.  This is urgent, so any help at all 
is greatly appreciated.
Regards
Aoife

The return SOAP BODY is:
 <soapenv:Body>
    <ns1:Form11Acknowledgement success="false" 
xmlns:ns1="http://www.ros.ie/schemas/form11/v4/">
        <ErrorList target="Form11">
            <ErrorList target="Personal">
                <Error code="117" target="Marital/dateofdeath">
                    Spouse Date of Death cannot be more then five years 
previous
                </Error>
            </ErrorList>       
        </ErrorList>
    </ns1:Form11Acknowledgement>
</soapenv:Body>

The error being obtained is
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode:
 faultString: org.xml.sax.SAXException: Invalid element in 
ie.ros.www.schemas.form11.v4._Acknowledgement - ErrorList
 faultActor:
 faultNode:
 faultDetail:
    {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: 
Invalid element in ie.ros.www.schemas.form11.v4._Acknowledgement - ErrorList
    at 
org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:223)
    at 
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1025)
    at 
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:159)
    at 
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1138)

The ErrorList and Acknowledgement are defined in the XSD as follows:
<xsd:element name="Error">
    <xsd:complexType>
        <xsd:simpleContent>
            <xsd:extension base="xsd:string">
                <xsd:attribute name="target" type="xsd:string" 
use="required"/>
                <xsd:attribute name="code" type="xsd:integer" 
use="required"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
</xsd:element>

<xsd:element name="ErrorList">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element ref="Error" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="ErrorList" minOccurs="0" 
maxOccurs="unbounded"/>
        </xsd:sequence>
        <xsd:attribute name="target" type="xsd:string" use="optional"/>
    </xsd:complexType>
</xsd:element>

<xsd:complexType name="AcknowledgementType">
    <xsd:choice minOccurs="0">
        <xsd:element ref="ErrorList"/>
        <xsd:element name="NoticeNumber">
        <xsd:complexType>
            <xsd:simpleContent>
                <xsd:extension base="xsd:string"/>
            </xsd:simpleContent>
        </xsd:complexType>
    </xsd:element>
    </xsd:choice>
    <xsd:attribute name="success" type="boolean" use="required"/>
</xsd:complexType>



Mime
View raw message