Hi,

I have a problem with AXIS alpha3 not generating all java classes
when using arrays of complex types:

My WSDL file (please find array.wsdl as an attachement) contains a
array definition as well as a complex type definition (which is the
array base element).

If I uncomment the comment-out parts all classes gets generated, but
I really do not need the additional defined operation etc.

If I leave the comments inside, some java source files are missing
after the generation (according to the file system contents and
compiler error messages).

BTW: I use the following command (CLASSPATH includes the neccessary
      JAR files):
      $ java org.apache.axis.wsdl.Wsdl2java -s -o classes array.wsdl

Any hints?




        Thanx,
        hardy
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:s="http://aaa.bbb/ccc/xsd"; xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:tns="http://aaa.bbb/ccc"; xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; name="xyz" 
targetNamespace="http://aaa.bbb/ccc";>

        <types>
                <schema xmlns="http://www.w3.org/2001/XMLSchema"; 
targetNamespace="http://aaa.bbb/ccc/xsd";>
                        <complexType xmlns="http://www.w3.org/2001/XMLSchema"; 
name="ArrayOfSOAPStruct">
                                <complexContent 
xmlns="http://www.w3.org/2001/XMLSchema";>
                                        <restriction 
xmlns="http://www.w3.org/2001/XMLSchema"; base="SOAP-ENC:Array">
                                                <sequence 
xmlns="http://www.w3.org/2001/XMLSchema";>
                                                        <element 
xmlns="http://www.w3.org/2001/XMLSchema"; maxOccurs="unbounded" name="item" 
type="s:SOAPStruct"/>
                                                </sequence>
                                                <attribute 
xmlns="http://www.w3.org/2001/XMLSchema"; ref="SOAP-ENC:arrayType" 
wsdl:arrayType="s:SOAPStruct[]"/>
                                        </restriction>
                                </complexContent>
                        </complexType>
                        <complexType xmlns="http://www.w3.org/2001/XMLSchema"; 
name="SOAPStruct">
                                <sequence xmlns="http://www.w3.org/2001/XMLSchema";>
                                        <element 
xmlns="http://www.w3.org/2001/XMLSchema"; name="varString" type="string"/>
                                        <element 
xmlns="http://www.w3.org/2001/XMLSchema"; name="varInt" type="int"/>
                                        <element 
xmlns="http://www.w3.org/2001/XMLSchema"; name="varFloat" type="float"/>
                                        <element 
xmlns="http://www.w3.org/2001/XMLSchema"; name="varBase64" type="base64Binary"/>
                                        <element 
xmlns="http://www.w3.org/2001/XMLSchema"; name="varDateTime" type="dateTime"/>
                                        <element 
xmlns="http://www.w3.org/2001/XMLSchema"; name="varDecimal" type="decimal"/>
                                        <element 
xmlns="http://www.w3.org/2001/XMLSchema"; name="varBoolean" type="boolean"/>
                                </sequence>
                        </complexType>
                </schema>
        </types>

<!--
        <message xmlns="http://schemas.xmlsoap.org/wsdl/"; name="_echoStructRequest">
                <part name="inputStruct" type="s:SOAPStruct"/>
        </message>
        <message xmlns="http://schemas.xmlsoap.org/wsdl/"; name="_echoStructResponse">
                <part name="return" type="s:SOAPStruct"/>
        </message>
-->

        <message xmlns="http://schemas.xmlsoap.org/wsdl/"; 
name="echoStructArrayRequest">
                <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
        </message>
        <message xmlns="http://schemas.xmlsoap.org/wsdl/"; 
name="echoStructArrayResponse">
                <part name="return" type="s:ArrayOfSOAPStruct"/>
        </message>

        <portType xmlns="http://schemas.xmlsoap.org/wsdl/"; name="ArrayPort">
<!--
                <operation name="_echoStruct" parameterOrder="inputStruct">
                        <input message="tns:_echoStructRequest" name="echoStruct"/>
                        <output message="tns:_echoStructResponse" 
name="echoStructResponse"/>
                </operation>
-->
                <operation name="echoStructArray" parameterOrder="inputStructArray">
                        <input message="tns:echoStructArrayRequest" 
name="echoStructArray"/>
                        <output message="tns:echoStructArrayResponse" 
name="echoStructArrayResponse"/>
                </operation>
        </portType>

        <binding xmlns="http://schemas.xmlsoap.org/wsdl/"; name="ArrayBinding" 
type="tns:ArrayPort">
                <soap:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http"/>
<!--
                <operation name="_echoStruct">
                        <soap:operation soapAction="http://aaa.bbb/ccc/array/"/>
                        <input>
                                <soap:body 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
namespace="http://tempuri.org/abc"; use="encoded"/>
                        </input>
                        <output>
                                <soap:body 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
namespace="http://tempuri.org/abc"; use="encoded"/>
                        </output>
                </operation>
-->
                <operation name="echoStructArray">
                        <soap:operation soapAction="http://aaa.bbb/ccc/array/"/>
                        <input>
                                <soap:body 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
namespace="http://tempuri.org/abc"; use="encoded"/>
                        </input>
                        <output>
                                <soap:body 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
namespace="http://tempuri.org/abc"; use="encoded"/>
                        </output>
                </operation>
        </binding>

        <service xmlns="http://schemas.xmlsoap.org/wsdl/"; name="ArrayService">
          <port binding="tns:ArrayBinding" name="ArrayService">
            <soap:address 
location="http://localhost:8080/array/services/ArrayService"/>
          </port>
        </service>

</definitions>

Reply via email to