wsdl2java generates incorrect code when output message with two parts is used
-----------------------------------------------------------------------------

                 Key: AXIS2-3934
                 URL: https://issues.apache.org/jira/browse/AXIS2-3934
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
    Affects Versions: 1.4
         Environment: WinXP, Ant Script
            Reporter: alexander elbert


wsdl2java generates an incorrect function signature if the wsdl operation's 
output method has two parts.
Expected result -- the function signature should contain the return value
Current result -- the function is generated with the void return type

Schema file used:

<?xml version="1.0" encoding="UTF-8"?>

<schema 
  targetNamespace="http://sso.nsc.nationwide.com";
  xmlns="http://www.w3.org/2001/XMLSchema";
  xmlns:tns="http://sso.nsc.nationwide.com";>
  
   
   <complexType name="AttributeData">
    <sequence>
     <element name="name" nillable="true" type="string"/>
     <element name="type" nillable="true" type="string"/>
     <element name="value" nillable="true" minOccurs="0" maxOccurs="unbounded" 
type="string"/>
    </sequence>
   </complexType>
   
   <complexType name="ApplicationToken">
    <sequence>
     <element name="applicationID" nillable="true" type="string"/>
     <element name="password" nillable="true" type="string"/>
    </sequence>
   </complexType>
   
   <complexType name="ResultData">
    <sequence>
     <element name="description" nillable="true" type="string"/>
     <element name="errorCode" nillable="true" type="string"/>
     <element name="errorDetails" nillable="true" type="string"/>
     <element name="errorType" nillable="true" type="string"/>
     <element name="result" type="boolean"/>
    </sequence>
   </complexType>
   
   <complexType name="InterrogationData">
    <sequence>
     <element name="answer" nillable="true" type="string"/>
     <element name="encryptedAnswer" nillable="true" type="string"/>
     <element name="question" nillable="true" type="string"/>
    </sequence>
   </complexType>
   
   <complexType name="UserData">
    <sequence>
     <element name="attributes" nillable="true" minOccurs="0" 
maxOccurs="unbounded" type="tns:AttributeData" />
     <element name="email" nillable="true" type="string"/>
     <element name="endDate" nillable="true" type="dateTime"/>
     <element name="firstName" nillable="true" type="string"/>
     <element name="lastName" nillable="true" type="string"/>
     <element name="startDate" nillable="true" type="dateTime"/>
     <element name="substituteCredentials" nillable="true" minOccurs="0" 
maxOccurs="unbounded" type="tns:InterrogationData"/>
     <element name="userID" nillable="true" type="string"/>
    </sequence>
   </complexType>
   
  </schema>

WSDL used:

begin
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
  targetNamespace="http://sso.nsc.nationwide.com";
  xmlns:tns="http://sso.nsc.nationwide.com";
  
  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 targetNamespace="http://sso.nsc.nationwide.com";>
     <xsd:import namespace="http://sso.nsc.nationwide.com"; 
schemaLocation="types.xsd" />
    </xsd:schema>

    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
          <xsd:import namespace="http://sso.nsc.nationwide.com"; 
schemaLocation="types.xsd" />
    </xsd:schema>
 </wsdl:types>
 
 
   <wsdl:message name="setAttributeRequest">
      <wsdl:part name="userID" type="xsd:string"/>
      <wsdl:part name="attribute" type="tns:AttributeData"/>    
   </wsdl:message>

   <wsdl:message name="setAttributeResponse">
      <wsdl:part name="resultData" type="tns:ResultData"/>
      <wsdl:part name="attribute" type="tns:AttributeData"/>    
   </wsdl:message>
   
   <wsdl:portType name="AdminWS">
   
      <wsdl:operation name="setAttribute" parameterOrder="userID attribute">
         <wsdl:input message="tns:setAttributeRequest" 
name="setAttributeRequest"/>
         <wsdl:output message="tns:setAttributeResponse" 
name="setAttributeResponse"/>
      </wsdl:operation>
      
   </wsdl:portType>

   <wsdl:binding name="AdminWSSOAP" type="tns:AdminWS">

      <soap:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http"/>

     
      <wsdl:operation name="setAttribute">

         <soap:operation soapAction=""/>
         
         <wsdl:input name="setAttributeRequest">
            <soap:body 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
namespace="http://sso.nsc.nationwide.com"; use="literal"/>
         </wsdl:input>

         <wsdl:output name="setAttributeResponse">
            <soap:body 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
namespace="http://sso.nsc.nationwide.com"; use="literal"/>
         </wsdl:output>

      </wsdl:operation>  
      
   </wsdl:binding>

   <wsdl:service name="AdminWS">
      <wsdl:port binding="tns:AdminWSSOAP" name="AdminWS">
         <soap:address 
location="http://localhost:8080/wsdomain/services/AdminWS"/>
      </wsdl:port>
   </wsdl:service>

</wsdl:definitions>
end


generated function is:
public void setAttribute(java.lang.String 
userID,com.nationwide.nsc.sso.AttributeData attribute)

ant invocation:
<java classname="org.apache.axis2.wsdl.WSDL2Java" classpathref="classpath">
                  <arg value="-ss"/> <!-- Generate server side -->
                  <arg value="-g"/> <!-- Generate all classes-->
                  <arg value="-sd"/>  <!-- Generate service descriptor -->
                  <arg value="-uw" />  <!-- Unwrap -->
                  <arg value="--noWSDL" />
                  <arg value="--noBuildXML" />
                   
                  <arg value="-ssi" /> <!-- Generate the interface -->
                  <arg value="-S" /> <!-- Generated src dir -->
                  <arg value="${gen.dir}" />
                  <arg value="-R" /> <!-- Generated resources dir -->
                  <arg value="${resources.dir}" />
                        
                 
            
            
                  <arg value="-sin" />
                  <arg value="AdminWS" />
                  <arg value="-scn" />
                  <arg value="AdminWSImpl" />
                  <arg value="-uri" />
                  <arg file="${dir.wsdl}/${wsdl.file}" />
                        
                </java>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to