Christoph,

Thanks for the note.

The WSDL2Java only generates referenced types.  It appears that you may
have found a bug.  The reference to  ArrayOfSOAPStruct should cause
SOAPStruct to be referenced and thus generated.

1) Could you verify that this problem occurs with the latest version of
Axis.  There have been several changes in the last month related to
reference relationships.

2) Your wsdl definition of ArrayOfSOAPStruct is a little strange.  You may
want to get rid of the attribute element in the ArrayOfSOAPStruct
complexType.

Please send me a reply.  I may have time to do further digging on Monday.

Rich Scheuerle
XML & Web Services Development
512-838-5115  (IBM TL 678-5115)


                                                                                       
                                           
                      Christoph                                                        
                                           
                      Hartmann                 To:       [EMAIL PROTECTED]      
                                           
                      <[EMAIL PROTECTED]        cc:                                     
                                           
                      >                        Subject:  AXIS alpha3 does not generate 
all classes                                
                                                                                       
                                           
                      02/13/2002 01:01                                                 
                                           
                      PM                                                               
                                           
                      Please respond to                                                
                                           
                      axis-user                                                        
                                           
                                                                                       
                                           
                                                                                       
                                           



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