(1)  The Holder java class is emitted as defined by JSR 101.  Probably should remove the // ?++? comment from the emitted code.

(2) I don't have enough information to determine the problem.  Please send more info.

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



[EMAIL PROTECTED] (Prasanta Behera)

06/04/2002 10:53 AM
Please respond to axis-user

       
        To:        axis-user <[EMAIL PROTECTED]>
        cc:        
        Subject:        WSDL2Java bug ?

       



With the attached WSDL,  there are 2 problems
(Using AXIS Beta 2 , JDK 1.4, Win2k)

1.  It doesnot generate any set/get() methods for Holder objects. This is the generated code.
public final class ArrayOfstringHolder implements javax.xml.rpc.holders.Holder {
   public String[] value;

   public ArrayOfstringHolder() {
   }

   public ArrayOfstringHolder(String[] value) {
       this.value = value;
   }

   // ?++?
}


2. The return type is not correct (.  The resp is expected to be int  but it is not. I had to
do this to get around the problem ( I added the set/get method in the Holder objects)

TestServiceStub.java

           // Put the resp in the holder object
           holder.setValue ((String[]) resp);
       
           /* AXIS BUG ???
           try {
               return ((Integer) resp).intValue();
           } catch (java.lang.Exception e) {
               return ((Integer) org.apache.axis.utils.JavaUtils.convert(resp,
int.class)).intValue();
           }
           */
           return 0;

The Apache Bugzilla  (nagyoa.apache.org) site seems to be down.
Will be happy to provide more info.

thanks,
/prasanta
<?xml version='1.0'?>
<wsdl:definitions name='TestService' targetNamespace='http://netscape.com/SOAP/test/service/'
   xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
   xmlns:xsd='http://www.w3.org/2001/XMLSchema'
   xmlns:tns='http://netscape.com/SOAP/test/service/'
   xmlns:http='http://schemas.xmlsoap.org/wsdl/http/'
   xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
   xmlns:mime='http://schemas.xmlsoap.org/wsdl/mime/'
   xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
   xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/'>
   <wsdl:types>
       <xsd:schema targetNamespace="http://netscape.com/SOAP/test/service/">
           <xsd:complexType name="ArrayOfstring">
               <xsd:complexContent>
                   <xsd:restriction base="SOAP-ENC:Array">

                        <xsd:attribute ref="SOAP-ENC:arrayType"
                           wsdl:arrayType="xsd:string[]"/>
                   </xsd:restriction>
               </xsd:complexContent>
           </xsd:complexType>
           <xsd:complexType name="UserAttribute">
               <xsd:sequence>
                   <xsd:element name="value" type="xsd:string"/>
                   <xsd:element name="name" type="xsd:string"/>
               </xsd:sequence>
           </xsd:complexType>
           <xsd:complexType name="ArrayOfUserAttribute">
               <xsd:complexContent>
                   <xsd:restriction base="SOAP-ENC:Array">
                       <xsd:attribute ref="SOAP-ENC:arrayType"
                           wsdl:arrayType="tns:UserAttribute[]"/>
                   </xsd:restriction>
               </xsd:complexContent>
           </xsd:complexType>
           <xsd:complexType name="TestUser">
               <xsd:sequence>
                   <xsd:element name="attributes"
                       type="tns:ArrayOfUserAttribute"/>
                   <xsd:element name="name" type="xsd:string"/>
               </xsd:sequence>
           </xsd:complexType>
           <xsd:complexType name="ArrayOfTestUser">
               <xsd:complexContent>
                   <xsd:restriction base="SOAP-ENC:Array">
                       <xsd:attribute ref="SOAP-ENC:arrayType"
                           wsdl:arrayType="tns:TestUser[]"/>
                   </xsd:restriction>
               </xsd:complexContent>
           </xsd:complexType>
       </xsd:schema>
   </wsdl:types>
   <wsdl:message name='TestService_getAllUsers_Request'>
       <wsdl:part name='group' type='xsd:string'/>
       <wsdl:part name='users' type='tns:ArrayOfTestUser'/>
   </wsdl:message>
   <wsdl:message name='TestService_getAllUsers_Response'>
       <wsdl:part name='response' type='xsd:int'/>
       <wsdl:part name='users' type='tns:ArrayOfTestUser'/>
   </wsdl:message>
   <wsdl:message name='TestService_getAllGroups_Request'>
       <wsdl:part name='groups' type='tns:ArrayOfstring'/>
   </wsdl:message>
   <wsdl:message name='TestService_getAllGroups_Response'>
       <wsdl:part name='response' type='xsd:int'/>
       <wsdl:part name='groups' type='tns:ArrayOfstring'/>
   </wsdl:message>
   <wsdl:message name='TestService_addGroup_Request'>
       <wsdl:part name='group' type='xsd:string'/>
       <wsdl:part name='nAttributes' type='xsd:int'/>
       <wsdl:part name='attributes' type='tns:ArrayOfstring'/>
   </wsdl:message>
   <wsdl:message name='TestService_addGroup_Response'>
       <wsdl:part name='response' type='xsd:int'/>
   </wsdl:message>
   <wsdl:portType name='TestService'>
       <wsdl:operation name='getAllGroups' parameterOrder='groups'>
           <wsdl:input name='getAllGroups' message='tns:TestService_getAllGroups_Request'/>
           <wsdl:output name='getAllGroups' message='tns:TestService_getAllGroups_Response'/>
       </wsdl:operation>
       <wsdl:operation name='getAllUsers' parameterOrder='group users'>
           <wsdl:input name='getAllUsers' message='tns:TestService_getAllUsers_Request'/>
           <wsdl:output name='getAllUsers' message='tns:TestService_getAllUsers_Response'/>
       </wsdl:operation>
   </wsdl:portType>
   <wsdl:binding name='TestService' type='tns:TestService'>
       <soap:binding transport='http://schemas.xmlsoap.org/soap/http' style='rpc'/>
       <wsdl:operation name='getAllGroups'>
           <soap:operation soapAction='' style='rpc'/>
           <wsdl:input name='getAllGroups'>
               <soap:body use='encoded' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' namespace='http://netscape.com/SOAP/test/service/TestService'/>
           </wsdl:input>
           <wsdl:output name='getAllGroups'>
               <soap:body use='encoded' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' namespace='http://netscape.com/SOAP/test/service/TestService'/>
           </wsdl:output>
       </wsdl:operation>
       <wsdl:operation name='getAllUsers'>
           <soap:operation soapAction='' style='rpc'/>
           <wsdl:input name='getAllUsers'>
               <soap:body use='encoded' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' namespace='http://netscape.com/SOAP/test/service/TestService'/>
           </wsdl:input>
           <wsdl:output name='getAllUsers'>
               <soap:body use='encoded' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' namespace='http://netscape.com/SOAP/test/service/TestService'/>
           </wsdl:output>
       </wsdl:operation>
   </wsdl:binding>
   <wsdl:service name='JavaService'>
       <wsdl:port name='TestService' binding='tns:TestService'>
                                 <soap:address location='http://localhost:6070/TestService/'/>
       </wsdl:port>
   </wsdl:service>
</wsdl:definitions>


Reply via email to