Following is an excerpt from WSDL generated using Java2WSDL. Note the
self-reference elements, namely "autVO" and "utVO".
...
<complexType name="UserTypeVO">
<sequence>
<element name="acBigDecimal" nillable="true" type
="impl:ArrayOf_xsd_decimal"/>
<element name="acBigInteger" nillable="true" type
="impl:ArrayOf_xsd_integer"/>
<element name="acCalendar" nillable="true" type
="impl:ArrayOf_xsd_dateTime"/>
<element name="acDate" nillable="true" type
="impl:ArrayOf_xsd_dateTime"/>
<element name="acString" nillable="true" type
="impl:ArrayOf_xsd_string"/>
<element name="apBoolean" nillable="true" type
="impl:ArrayOf_xsd_boolean"/>
<element name="apByte" type="xsd:base64Binary"/>
<element name="apDouble" nillable="true" type
="impl:ArrayOf_xsd_double"/>
<element name="apFloat" nillable="true" type
="impl:ArrayOf_xsd_float"/>
<element name="apInt" nillable="true" type="impl:ArrayOf_xsd_int"/>
<element name="apLong" nillable="true" type="impl:ArrayOf_xsd_long"/>
<element name="apShort" nillable="true" type
="impl:ArrayOf_xsd_short"/>
<element name="autVO" nillable="true" type
="impl:ArrayOf_tns1_UserTypeVO"/>
<element name="cBigDecimal" nillable="true" type="xsd:decimal"/>
<element name="cBigInteger" nillable="true" type="xsd:integer"/>
<element name="cCalendar" nillable="true" type="xsd:dateTime"/>
<element name="cDate" nillable="true" type="xsd:dateTime"/>
<element name="cString" nillable="true" type="xsd:string"/>
<element name="pBoolean" type="xsd:boolean"/>
<element name="pByte" type="xsd:byte"/>
<element name="pDouble" type="xsd:double"/>
<element name="pFloat" type="xsd:float"/>
<element name="pInt" type="xsd:int"/>
<element name="pLong" type="xsd:long"/>
<element name="pShort" type="xsd:short"/>
<element name="utVO" nillable="true" type="tns1:UserTypeVO"/>
</sequence>
</complexType>
<element name="UserTypeVO" nillable="true" type="tns1:UserTypeVO"/>
...
Should this data structure be supported with the current release of AXIS?
My corresponding XML request fails with the following message.
[java] Exception executing request: SOAP Fault AxisFault
[java] faultCode: {http://xml.apache.org/axis/}Server.userException
[java] faultString: org.xml.sax.SAXException: Bad types (class
[Ljava.lang.Object; -> class com.sybase.test.util.UserTypeVO)
[java] faultActor: null
[java] faultDetail:
[java] stackTrace: org.xml.sax.SAXException: Bad types (class
[Ljava.lang.Object; -> class com.sybase.test.util.UserTypeVO)
[java] at
org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:285)
[java] at
org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:893)
[java] at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:200)
[java] at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:684)
[java] at
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:207)
[java] at
org.apache.axis.message.RPCElement.getParams(RPCElement.java:265)
[java] at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:190)
[java] at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:276)
[java] at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
[java] at
org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:156)
[java] at org.apache.axis.SimpleChain.invoke(SimpleChain.java:126)
[java] at
org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:437)
[java] at
org.apache.axis.server.AxisServer.invoke(AxisServer.java:316)
[java] at
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:701)
[java] at
javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
[java] at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:335)
[java] at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
[java] at
com.sybase.jaguar.servlet.JagServlet.service(JagServlet.java:612)
[java] at
com.sybase.jaguar.servlet.JagRequestDispatcher.service(JagRequestDispatcher.java:856)
[java] at
com.sybase.jaguar.servlet.JagWebResource.service(JagWebResource.java:85)
[java] at
com.sybase.jaguar.servlet.JagFilterChain.doFilter(JagFilterChain.java:125)
[java] at
com.sybase.jaguar.servlet.ServletEngine.service(ServletEngine.java:580)
[java] at
com.sybase.jaguar.servlet.ServletServiceImpl.doService(ServletServiceImpl.java:52)
[java] at com.sybase.jaguar.servlet.
_sk_JaguarServlet_ServletService.invoke
(_sk_JaguarServlet_ServletService.java:148)
The same XML works against a .NET implementation.
Thanks.
Rhett