wsdl output parameter named "return"
------------------------------------

                 Key: AXIS2-1931
                 URL: https://issues.apache.org/jira/browse/AXIS2-1931
             Project: Apache Axis 2.0 (Axis2)
          Issue Type: Bug
          Components: wsdl
    Affects Versions: 1.1
         Environment: ALL
            Reporter: Davide De Benedictis



Output parameters contained into an automagically generated wsdl file are named 
"return" by default.

Generating client artifacts with thirdy parties tool as WSTOOLS boundled with 
JBossWS1.04GA result in invalid Java attribute class names. So wsdl must be 
corrected by hand. A simple workaround would be putting a "_" (underscore) 
before the output parameter name.

One serviceImpl method snippet:

public String getcurrentTAGs ()
{
   // business code here....

    return tagTable.size();
}


The complete automatic generated WSDL:

<wsdl:definitions xmlns:axis2="http://neo.sogei.com"; 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; 
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; 
xmlns:ns0="http://neo.sogei.com/xsd"; 
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"; 
xmlns:ns1="http://org.apache.axis2/xsd"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
targetNamespace="http://neo.sogei.com";>
  <wsdl:documentation>NEOService</wsdl:documentation>
  <wsdl:types>
    <xs:schema xmlns:ns="http://neo.sogei.com/xsd"; 
attributeFormDefault="qualified" elementFormDefault="qualified" 
targetNamespace="http://neo.sogei.com/xsd";>
      <xs:element name="getAlertFileResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="return" nillable="true" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getConfigurationFileResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="return" nillable="true" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getcurrentTAGsResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="return" nillable="true" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getProcessorInfo">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="processorInstance" nillable="true" 
type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getProcessorInfoResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" name="return" nillable="true" 
type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getProcessorInstancesResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" name="return" nillable="true" 
type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getRunningServicesResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" name="return" nillable="true" 
type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="resetProcessorTracesFault">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="resetProcessorTracesFault" type="xs:anyType"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="resetTAGTracesFault">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="resetTAGTracesFault" type="xs:anyType"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="setCSMFTraceLevel">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="provider" nillable="true" type="xs:int"/>
            <xs:element name="csmf" nillable="true" type="xs:int"/>
            <xs:element name="tag" nillable="true" type="xs:int"/>
            <xs:element name="newLevel" nillable="true" type="xs:int"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="setPSxServicePermission">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="psxService" nillable="true" type="xs:int"/>
            <xs:element name="psxMessage" nillable="true" type="xs:int"/>
            <xs:element name="status" nillable="true" type="xs:boolean"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="setProcessorTraceLevel">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="PID" nillable="true" type="xs:int"/>
            <xs:element name="newLevel" nillable="true" type="xs:int"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
  </wsdl:types>
  <wsdl:message name="setCSMFTraceLevelMessage">
    <wsdl:part name="part1" element="ns0:setCSMFTraceLevel"/>
  </wsdl:message>
  <wsdl:message name="setPSxServicePermissionMessage">
    <wsdl:part name="part1" element="ns0:setPSxServicePermission"/>
  </wsdl:message>
  <wsdl:message name="getProcessorInfoMessage">
    <wsdl:part name="part1" element="ns0:getProcessorInfo"/>
  </wsdl:message>
  <wsdl:message name="getProcessorInfoResponse">
    <wsdl:part name="part1" element="ns0:getProcessorInfoResponse"/>
  </wsdl:message>
  <wsdl:message name="getConfigurationFileMessage"/>
  <wsdl:message name="getConfigurationFileResponse">
    <wsdl:part name="part1" element="ns0:getConfigurationFileResponse"/>
  </wsdl:message>
  <wsdl:message name="getRunningServicesMessage"/>
  <wsdl:message name="getRunningServicesResponse">
    <wsdl:part name="part1" element="ns0:getRunningServicesResponse"/>
  </wsdl:message>
  <wsdl:message name="setProcessorTraceLevelMessage">
    <wsdl:part name="part1" element="ns0:setProcessorTraceLevel"/>
  </wsdl:message>
  <wsdl:message name="resetProcessorTracesMessage"/>
  <wsdl:message name="resetProcessorTracesFault">
    <wsdl:part name="part1" element="ns0:resetProcessorTracesFault"/>
  </wsdl:message>
  <wsdl:message name="getProcessorInstancesMessage"/>
  <wsdl:message name="getProcessorInstancesResponse">
    <wsdl:part name="part1" element="ns0:getProcessorInstancesResponse"/>
  </wsdl:message>
  <wsdl:message name="getAlertFileMessage"/>
  <wsdl:message name="getAlertFileResponse">
    <wsdl:part name="part1" element="ns0:getAlertFileResponse"/>
  </wsdl:message>
  <wsdl:message name="resetTAGTracesMessage"/>
  <wsdl:message name="resetTAGTracesFault">
    <wsdl:part name="part1" element="ns0:resetTAGTracesFault"/>
  </wsdl:message>
  <wsdl:message name="getcurrentTAGsMessage"/>
  <wsdl:message name="getcurrentTAGsResponse">
    <wsdl:part name="part1" element="ns0:getcurrentTAGsResponse"/>
  </wsdl:message>
  <wsdl:portType name="NEOServicePortType">
    <wsdl:operation name="setCSMFTraceLevel">
      <wsdl:input xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; 
message="axis2:setCSMFTraceLevelMessage" wsaw:Action="urn:setCSMFTraceLevel"/>
    </wsdl:operation>
    <wsdl:operation name="setPSxServicePermission">
      <wsdl:input xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; 
message="axis2:setPSxServicePermissionMessage" 
wsaw:Action="urn:setPSxServicePermission"/>
    </wsdl:operation>
    <wsdl:operation name="getProcessorInfo">
      <wsdl:input xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; 
message="axis2:getProcessorInfoMessage" wsaw:Action="urn:getProcessorInfo"/>
      <wsdl:output message="axis2:getProcessorInfoResponse"/>
    </wsdl:operation>
    <wsdl:operation name="getConfigurationFile">
      <wsdl:input xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; 
message="axis2:getConfigurationFileMessage" 
wsaw:Action="urn:getConfigurationFile"/>
      <wsdl:output message="axis2:getConfigurationFileResponse"/>
    </wsdl:operation>
    <wsdl:operation name="getRunningServices">
      <wsdl:input xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; 
message="axis2:getRunningServicesMessage" wsaw:Action="urn:getRunningServices"/>
      <wsdl:output message="axis2:getRunningServicesResponse"/>
    </wsdl:operation>
    <wsdl:operation name="setProcessorTraceLevel">
      <wsdl:input xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; 
message="axis2:setProcessorTraceLevelMessage" 
wsaw:Action="urn:setProcessorTraceLevel"/>
    </wsdl:operation>
    <wsdl:operation name="resetProcessorTraces">
      <wsdl:input xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; 
message="axis2:resetProcessorTracesMessage" 
wsaw:Action="urn:resetProcessorTraces"/>
      <wsdl:fault message="axis2:resetProcessorTracesFault" 
name="resetProcessorTracesFault"/>
    </wsdl:operation>
    <wsdl:operation name="getProcessorInstances">
      <wsdl:input xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; 
message="axis2:getProcessorInstancesMessage" 
wsaw:Action="urn:getProcessorInstances"/>
      <wsdl:output message="axis2:getProcessorInstancesResponse"/>
    </wsdl:operation>
    <wsdl:operation name="getAlertFile">
      <wsdl:input xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; 
message="axis2:getAlertFileMessage" wsaw:Action="urn:getAlertFile"/>
      <wsdl:output message="axis2:getAlertFileResponse"/>
    </wsdl:operation>
    <wsdl:operation name="resetTAGTraces">
      <wsdl:input xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; 
message="axis2:resetTAGTracesMessage" wsaw:Action="urn:resetTAGTraces"/>
      <wsdl:fault message="axis2:resetTAGTracesFault" 
name="resetTAGTracesFault"/>
    </wsdl:operation>
    <wsdl:operation name="getcurrentTAGs">
      <wsdl:input xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; 
message="axis2:getcurrentTAGsMessage" wsaw:Action="urn:getcurrentTAGs"/>
      <wsdl:output message="axis2:getcurrentTAGsResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="NEOServiceSOAP11Binding" type="axis2:NEOServicePortType">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; 
style="document"/>
    <wsdl:operation name="setCSMFTraceLevel">
      <soap:operation soapAction="urn:setCSMFTraceLevel" style="document"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
    </wsdl:operation>
    <wsdl:operation name="setPSxServicePermission">
      <soap:operation soapAction="urn:setPSxServicePermission" 
style="document"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
    </wsdl:operation>
    <wsdl:operation name="getProcessorInfo">
      <soap:operation soapAction="urn:getProcessorInfo" style="document"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getConfigurationFile">
      <soap:operation soapAction="urn:getConfigurationFile" style="document"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getRunningServices">
      <soap:operation soapAction="urn:getRunningServices" style="document"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="setProcessorTraceLevel">
      <soap:operation soapAction="urn:setProcessorTraceLevel" style="document"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
    </wsdl:operation>
    <wsdl:operation name="resetProcessorTraces">
      <soap:operation soapAction="urn:resetProcessorTraces" style="document"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:fault name="resetProcessorTracesFault">
        <soap:body use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="getProcessorInstances">
      <soap:operation soapAction="urn:getProcessorInstances" style="document"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getAlertFile">
      <soap:operation soapAction="urn:getAlertFile" style="document"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="resetTAGTraces">
      <soap:operation soapAction="urn:resetTAGTraces" style="document"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:fault name="resetTAGTracesFault">
        <soap:body use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="getcurrentTAGs">
      <soap:operation soapAction="urn:getcurrentTAGs" style="document"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:binding name="NEOServiceSOAP12Binding" type="axis2:NEOServicePortType">
    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"; 
style="document"/>
    <wsdl:operation name="setCSMFTraceLevel">
      <soap12:operation soapAction="urn:setCSMFTraceLevel" style="document"/>
      <wsdl:input>
        <soap12:body use="literal"/>
      </wsdl:input>
    </wsdl:operation>
    <wsdl:operation name="setPSxServicePermission">
      <soap12:operation soapAction="urn:setPSxServicePermission" 
style="document"/>
      <wsdl:input>
        <soap12:body use="literal"/>
      </wsdl:input>
    </wsdl:operation>
    <wsdl:operation name="getProcessorInfo">
      <soap12:operation soapAction="urn:getProcessorInfo" style="document"/>
      <wsdl:input>
        <soap12:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getConfigurationFile">
      <soap12:operation soapAction="urn:getConfigurationFile" style="document"/>
      <wsdl:input>
        <soap12:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getRunningServices">
      <soap12:operation soapAction="urn:getRunningServices" style="document"/>
      <wsdl:input>
        <soap12:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="setProcessorTraceLevel">
      <soap12:operation soapAction="urn:setProcessorTraceLevel" 
style="document"/>
      <wsdl:input>
        <soap12:body use="literal"/>
      </wsdl:input>
    </wsdl:operation>
    <wsdl:operation name="resetProcessorTraces">
      <soap12:operation soapAction="urn:resetProcessorTraces" style="document"/>
      <wsdl:input>
        <soap12:body use="literal"/>
      </wsdl:input>
      <wsdl:fault name="resetProcessorTracesFault">
        <soap12:fault use="literal" name="resetProcessorTracesFault"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="getProcessorInstances">
      <soap12:operation soapAction="urn:getProcessorInstances" 
style="document"/>
      <wsdl:input>
        <soap12:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getAlertFile">
      <soap12:operation soapAction="urn:getAlertFile" style="document"/>
      <wsdl:input>
        <soap12:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="resetTAGTraces">
      <soap12:operation soapAction="urn:resetTAGTraces" style="document"/>
      <wsdl:input>
        <soap12:body use="literal"/>
      </wsdl:input>
      <wsdl:fault name="resetTAGTracesFault">
        <soap12:fault use="literal" name="resetTAGTracesFault"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="getcurrentTAGs">
      <soap12:operation soapAction="urn:getcurrentTAGs" style="document"/>
      <wsdl:input>
        <soap12:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:binding name="NEOServiceHttpBinding" type="axis2:NEOServicePortType">
    <http:binding verb="POST"/>
    <wsdl:operation name="setCSMFTraceLevel">
      <http:operation location="setCSMFTraceLevel"/>
      <wsdl:input>
        <mime:content type="text/xml"/>
      </wsdl:input>
    </wsdl:operation>
    <wsdl:operation name="setPSxServicePermission">
      <http:operation location="setPSxServicePermission"/>
      <wsdl:input>
        <mime:content type="text/xml"/>
      </wsdl:input>
    </wsdl:operation>
    <wsdl:operation name="getProcessorInfo">
      <http:operation location="getProcessorInfo"/>
      <wsdl:input>
        <mime:content type="text/xml"/>
      </wsdl:input>
      <wsdl:output>
        <mime:content type="text/xml"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getConfigurationFile">
      <http:operation location="getConfigurationFile"/>
      <wsdl:input>
        <mime:content type="text/xml"/>
      </wsdl:input>
      <wsdl:output>
        <mime:content type="text/xml"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getRunningServices">
      <http:operation location="getRunningServices"/>
      <wsdl:input>
        <mime:content type="text/xml"/>
      </wsdl:input>
      <wsdl:output>
        <mime:content type="text/xml"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="setProcessorTraceLevel">
      <http:operation location="setProcessorTraceLevel"/>
      <wsdl:input>
        <mime:content type="text/xml"/>
      </wsdl:input>
    </wsdl:operation>
    <wsdl:operation name="resetProcessorTraces">
      <http:operation location="resetProcessorTraces"/>
      <wsdl:input>
        <mime:content type="text/xml"/>
      </wsdl:input>
    </wsdl:operation>
    <wsdl:operation name="getProcessorInstances">
      <http:operation location="getProcessorInstances"/>
      <wsdl:input>
        <mime:content type="text/xml"/>
      </wsdl:input>
      <wsdl:output>
        <mime:content type="text/xml"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getAlertFile">
      <http:operation location="getAlertFile"/>
      <wsdl:input>
        <mime:content type="text/xml"/>
      </wsdl:input>
      <wsdl:output>
        <mime:content type="text/xml"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="resetTAGTraces">
      <http:operation location="resetTAGTraces"/>
      <wsdl:input>
        <mime:content type="text/xml"/>
      </wsdl:input>
    </wsdl:operation>
    <wsdl:operation name="getcurrentTAGs">
      <http:operation location="getcurrentTAGs"/>
      <wsdl:input>
        <mime:content type="text/xml"/>
      </wsdl:input>
      <wsdl:output>
        <mime:content type="text/xml"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="NEOService">
    <wsdl:port name="NEOServiceSOAP11port_http" 
binding="axis2:NEOServiceSOAP11Binding">
      <soap:address 
location="http://127.0.0.1:8080/axis2-neo/services/NEOService"/>
    </wsdl:port>
    <wsdl:port name="NEOServiceSOAP12port_http" 
binding="axis2:NEOServiceSOAP12Binding">
      <soap12:address 
location="http://127.0.0.1:8080/axis2-neo/services/NEOService"/>
    </wsdl:port>
    <wsdl:port name="NEOServiceHttpport1" binding="axis2:NEOServiceHttpBinding">
      <http:address location="http://127.0.0.1:8080/axis2-neo/rest/NEOService"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>


A sample generated wrapper class for a return type:

/*
 * JBossWS WS-Tools Generated Source
 *
 * Generation Date: Wed Jan 03 14:37:04 CET 2007
 *
 * This generated source code represents a derivative work of the input to
 * the generator that produced it. Consult the input for the copyright and
 * terms of use that apply to this source code.
 */


public class  GetcurrentTAGsResponse
{

  protected java.lang.String return;
  public GetcurrentTAGsResponse()
  {
  }

  public GetcurrentTAGsResponse(java.lang.String return)
  {
    this.return=return;
  }
  public java.lang.String getReturn()
  {
    return return ;
  }

  public void setReturn(java.lang.String return)
  {
    this.return=return;
  }
}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

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

Reply via email to