Hi Tore,

there is a jira for this issue:

http://issues.apache.org/jira/browse/AXIS2-523

and the thread by Chuck and Ajith:

[Axis2 0.95] Recursive data types and choice particles.

The issue arises because recursive data types definitions in the wsdl are not handled properly. You can find a patch in the thread and in the jira.

Cheers,

Diego


[EMAIL PROTECTED] wrote:
 Hi,

I can confirm Diego's report on this issue. I have several wsdl's in my code
tree. All of them worked well with axis2 wsdl2java up to a 0.95-SNAPSHOT
build by me march 13th. It worked well using the 0.95-SNAPSHOT build from
march 2nd.

The only thing that differs between the wsdl's are the size in terms of
operations and the complexity of the types. I got StackOverflowError on the
biggest one even on a 0.96-SNAPHOT from yesterday.


Best regards
Tore Larsen
Senior Software Engineer
Comptel Communication AS

e-mail        :  [EMAIL PROTECTED]


-----Original Message-----
From: Diego [mailto:[EMAIL PROTECTED] Sent: 26. mars 2006 03:31
To: [email protected]
Subject: [axis2 v0.95] wsdl2java stack overflow

Hi everybody,

using axis2 v0.95 wsdl2java I got a stack overflow exception with the
following wsdl file.  The same wsdl file worked fine with all the previous
axis and axis2 versions.

Thanks a lot for you help!

Diego

=================================================================
                             ant target
=================================================================

  <target name="wsdl2java-astrodas-peer">
   <java classname="org.apache.axis2.wsdl.WSDL2Code"
      classpathref="axis2.classpath">
    <arg value="-uri" />
    <arg value="${astrodas-peer.wsdl}" />
    <arg value="-o" />
    <arg value="${basedir}" />
    <arg value="-p" />
    <arg value="org.astrodas.ws.peer" />
    <arg value="-d"/>
    <arg value="xmlbeans" />
   </java>
  </target>

=================================================================
                             exception
=================================================================

wsdl2java-astrodas-peer:
      [java] Retrieving schema at
'http://www.ivoa.net/xml/VOTable/v1.1', relative to
'file:/Users/diego/Babylon/java/workspace/astrodas-test2/wsdl/'.
      [java] java.lang.StackOverflowError
[java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:180)
      [java]     at org.apache.tools.ant.taskdefs.Java.run(Java.java:710)
[java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:178)
      [java]     at org.apache.tools.ant.taskdefs.Java.execute(Java.java:84)
[java] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
      [java]     at org.apache.tools.ant.Task.perform(Task.java:364)
      [java]     at org.apache.tools.ant.Target.execute(Target.java:341)
[java] at org.apache.tools.ant.Target.performTasks(Target.java:369) [java] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) [java] at org.apache.tools.ant.Project.executeTarget(Project.java:1185) [java] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.ja
va:40)
[java] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
      [java]     at org.apache.tools.ant.Main.runBuild(Main.java:668)
      [java]     at org.apache.tools.ant.Main.startAnt(Main.java:187)
[java] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246) [java] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
      [java] Caused by: java.lang.StackOverflowError
      [java] --- Nested Exception ---
      [java] java.lang.StackOverflowError

=================================================================
                            wsdl file
=================================================================

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://astrodas.org/ws/peer";
                         xmlns:tns="http://astrodas.org/ws/peer";
                        xmlns:tns1="http://astrodas.org/ws/model";
                        xmlns:tns2="http://www.ivoa.net/xml/VOTable/v1.1";
                        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
                        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
                         xmlns:xsd="http://www.w3.org/2001/XMLSchema";>

  <wsdl:types>
<xsd:schema elementFormDefault="qualified" targetNamespace="http://astrodas.org/ws/model";>
    <xsd:import namespace="http://www.w3.org/2001/XMLSchema"; />
<xsd:import namespace="http://www.ivoa.net/xml/VOTable/v1.1"; schemaLocation="http://www.ivoa.net/xml/VOTable/v1.1"; />
    <!--
      Standard axis mappings from wsdl to java
      ========================================
      xsd:base64Binary  byte[]
      xsd:boolean       boolean
      xsd:byte          byte
      xsd:dateTime      java.util.Calendar
      xsd:decimal       java.math.BigDecimal
      xsd:double        double
      xsd:float         float
      xsd:hexBinary     byte[]
      xsd:int           int
      xsd:integer       java.math.BigInteger
      xsd:long          long
      xsd:QName         javax.xml.namespace.QName
      xsd:short         short
      xsd:string        java.lang.String
    -->
    <!-- insertMappingAnnotations -->
    <xsd:complexType name="external-object">
     <xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="1" name="id" type="xsd:integer" /> <xsd:element minOccurs="1" maxOccurs="1" name="external-id" type="xsd:integer" /> <xsd:element minOccurs="1" maxOccurs="1" name="external-db" type="xsd:string" /> <xsd:element minOccurs="1" maxOccurs="1" name="match" type="xsd:boolean" />
     </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="annotation">
     <xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="1" name="id" type="xsd:integer" /> <xsd:element minOccurs="0" maxOccurs="1" name="type" type="xsd:string" /> <xsd:element minOccurs="1" maxOccurs="1" name="author" type="xsd:string" /> <xsd:element minOccurs="0" maxOccurs="1" name="timestamp" type="xsd:string" />
     </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="mapping-annotation">
     <xsd:complexContent mixed="false">
      <xsd:extension base="tns1:annotation">
       <xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="unbounded" name="external-object" type="tns1:external-object" /> <xsd:element minOccurs="0" maxOccurs="1" name="text" type="xsd:string" /> <xsd:element minOccurs="0" maxOccurs="1" name="reliability" type="xsd:float" /> <xsd:element minOccurs="0" maxOccurs="1" name="ra-mean" type="xsd:double" /> <xsd:element minOccurs="0" maxOccurs="1" name="dec-mean" type="xsd:double" />
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
    <xsd:element name="insertMappingAnnotations">
     <xsd:complexType>
      <xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="unbounded" name="mapping-annotation" type="tns1:mapping-annotation" />
      </xsd:sequence>
     </xsd:complexType>
    </xsd:element>
    <xsd:element name="insertMappingAnnotationsResponse">
     <xsd:complexType>
      <xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="result" type="xsd:int" />
      </xsd:sequence>
     </xsd:complexType>
    </xsd:element>
    <!-- executeGlobalMappingTableQuery -->
    <xsd:element name="executeGlobalMappingTableQuery">
     <xsd:complexType>
      <xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="query" type="xsd:string" />
      </xsd:sequence>
     </xsd:complexType>
    </xsd:element>
    <xsd:element name="executeGlobalMappingTableQueryResponse">
     <xsd:complexType>
      <xsd:sequence>
       <xsd:element minOccurs="1" maxOccurs="1" ref="tns2:VOTABLE" />
      </xsd:sequence>
     </xsd:complexType>
    </xsd:element>
   </xsd:schema>
  </wsdl:types>

  <!-- insertMappingAnnotations -->
  <wsdl:message name="insertMappingAnnotationsMessage">
   <wsdl:part name="body" element="tns1:insertMappingAnnotations" />
  </wsdl:message>
  <wsdl:message name="insertMappingAnnotationsResponseMessage">
   <wsdl:part name="body" element="tns1:insertMappingAnnotationsResponse" />
  </wsdl:message>
  <!-- executeGlobalMappingTableQuery -->
  <wsdl:message name="executeGlobalMappingTableQueryMessage">
   <wsdl:part name="body" element="tns1:executeGlobalMappingTableQuery" />
  </wsdl:message>
  <wsdl:message name="executeGlobalMappingTableQueryResponseMessage">
<wsdl:part name="body" element="tns1:executeGlobalMappingTableQueryResponse" />
  </wsdl:message>
        
  <wsdl:portType name="AstrodasPeer">
   <wsdl:operation name="insertMappingAnnotations">
    <wsdl:documentation>Stores an array of annotations in the annotation
backend database</wsdl:documentation>
    <wsdl:input message="tns:insertMappingAnnotationsMessage" />
    <wsdl:output message="tns:insertMappingAnnotationsResponseMessage" />
   </wsdl:operation>
   <wsdl:operation name="executeGlobalMappingTableQuery">
    <wsdl:documentation>Executes a query on the global mapping table of the
p2p network of annotation</wsdl:documentation>
    <wsdl:input message="tns:executeGlobalMappingTableQueryMessage" />
    <wsdl:output
message="tns:executeGlobalMappingTableQueryResponseMessage" />
   </wsdl:operation>
  </wsdl:portType>

  <wsdl:binding name="AstrodasPeerBinding" type="tns:AstrodasPeer">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"; style="document" />
   <wsdl:operation name="insertMappingAnnotations">
    <soap:operation soapAction="insertMappingAnnotations" />
    <wsdl:input>
     <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>
     <soap:body use="literal" />
    </wsdl:output>
   </wsdl:operation>
   <wsdl:operation name="executeGlobalMappingTableQuery">
    <soap:operation soapAction="executeGlobalMappingTableQuery" />
    <wsdl:input>
     <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>
     <soap:body use="literal" />
    </wsdl:output>
   </wsdl:operation>
  </wsdl:binding>

  <wsdl:service name="astrodas-peer">
   <wsdl:port name="astrodas-peer" binding="tns:AstrodasPeerBinding">
    <soap:address
location="http://localhost:8080/axis2/services/astrodas-peer"; />
   </wsdl:port>
  </wsdl:service>

</wsdl:definitions>

Reply via email to