WSDL2Java incorrectly creates stub params to pass method paramters in SOAP 
request header
-----------------------------------------------------------------------------------------

                 Key: AXIS-2549
                 URL: http://issues.apache.org/jira/browse/AXIS-2549
             Project: Apache Axis
          Issue Type: Bug
          Components: WSDL processing
    Affects Versions: 1.2.1
         Environment: MS Windows 2000 server running ColdFusion MX7 with OEM'd 
Axis 1.2.1, J2SDK 1.4.2_11
            Reporter: Ezra J. Wise


WSDL2Java creates a stub class that creates a SOAP request with method 
paramters in its header, as opposed to its body.

Here is the original WSDL:

********* start of WSDL ********* 

  <?xml version="1.0" encoding="UTF-8" ?> 
- <wsdl:definitions targetNamespace="urn:testws" xmlns:s0="urn:testws" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema";> 
- <wsdl:types> 
- <xsd:schema elementFormDefault="qualified" targetNamespace="urn:testws"> 
  <xsd:element name="OpGet" type="s0:GetInputMap" /> 
- <xsd:complexType name="GetInputMap"> 
- <xsd:sequence> 
  <xsd:element name="Request_ID" type="xsd:string" /> 
  </xsd:sequence> 
  </xsd:complexType> 
  <xsd:element name="OpGetResponse" type="s0:GetOutputMap" /> 
- <xsd:complexType name="GetOutputMap"> 
- <xsd:sequence> 
  <xsd:element name="Assigned_To" type="xsd:string" /> 
  <xsd:element name="Create_Date" type="xsd:dateTime" /> 
  <xsd:element name="Last_Modified_By" type="xsd:string" /> 
  <xsd:element name="Modified_Date" type="xsd:dateTime" /> 
  <xsd:element name="Request_ID" type="xsd:string" /> 
  <xsd:element name="Short_Description" type="xsd:string" /> 
  <xsd:element name="Status" type="s0:StatusType" /> 
  <xsd:element name="Status_History" type="xsd:string" /> 
  <xsd:element name="Submitter" type="xsd:string" /> 
  </xsd:sequence> 
  </xsd:complexType> 
- <xsd:simpleType name="StatusType"> 
- <xsd:restriction base="xsd:string"> 
  <xsd:enumeration value="New" /> 
  <xsd:enumeration value="Assigned" /> 
  <xsd:enumeration value="Fixed" /> 
  <xsd:enumeration value="Rejected" /> 
  <xsd:enumeration value="Closed" /> 
  </xsd:restriction> 
  </xsd:simpleType> 
  <xsd:element name="OpCreate" type="s0:CreateInputMap" /> 
- <xsd:complexType name="CreateInputMap"> 
- <xsd:sequence> 
  <xsd:element name="Assigned_To" type="xsd:string" /> 
  <xsd:element name="Short_Description" type="xsd:string" /> 
  <xsd:element name="Status" type="s0:StatusType" /> 
  <xsd:element name="Submitter" type="xsd:string" /> 
  </xsd:sequence> 
  </xsd:complexType> 
  <xsd:element name="OpCreateResponse" type="s0:CreateOutputMap" /> 
- <xsd:complexType name="CreateOutputMap"> 
- <xsd:sequence> 
  <xsd:element name="Request_ID" type="xsd:string" /> 
  </xsd:sequence> 
  </xsd:complexType> 
  <xsd:element name="OpGetList" type="s0:GetListInputMap" /> 
- <xsd:complexType name="GetListInputMap"> 
- <xsd:sequence> 
  <xsd:element name="Qualification" type="xsd:string" /> 
  </xsd:sequence> 
  </xsd:complexType> 
  <xsd:element name="OpGetListResponse" type="s0:GetListOutputMap" /> 
- <xsd:complexType name="GetListOutputMap"> 
- <xsd:sequence> 
- <xsd:element maxOccurs="unbounded" name="getListValues"> 
- <xsd:complexType> 
- <xsd:sequence> 
  <xsd:element name="Assigned_To" type="xsd:string" /> 
  <xsd:element name="Create_Date" type="xsd:dateTime" /> 
  <xsd:element name="Last_Modified_By" type="xsd:string" /> 
  <xsd:element name="Modified_Date" type="xsd:dateTime" /> 
  <xsd:element name="Request_ID" type="xsd:string" /> 
  <xsd:element name="Short_Description" type="xsd:string" /> 
  <xsd:element name="Status" type="s0:StatusType" /> 
  <xsd:element name="Status_History" type="xsd:string" /> 
  <xsd:element name="Submitter" type="xsd:string" /> 
  </xsd:sequence> 
  </xsd:complexType> 
  </xsd:element> 
  </xsd:sequence> 
  </xsd:complexType> 
  <xsd:element name="OpSet" type="s0:SetInputMap" /> 
- <xsd:complexType name="SetInputMap"> 
- <xsd:sequence> 
  <xsd:element name="Assigned_To" type="xsd:string" /> 
  <xsd:element name="Short_Description" type="xsd:string" /> 
  <xsd:element name="Status" type="s0:StatusType" /> 
  <xsd:element name="Submitter" type="xsd:string" /> 
  <xsd:element name="Request_ID" type="xsd:string" /> 
  </xsd:sequence> 
  </xsd:complexType> 
  <xsd:element name="OpSetResponse" type="s0:SetOutputMap" /> 
- <xsd:complexType name="SetOutputMap"> 
  <xsd:sequence /> 
  </xsd:complexType> 
  <xsd:element name="AuthenticationInfo" type="s0:AuthenticationInfo" /> 
- <xsd:complexType name="AuthenticationInfo"> 
- <xsd:sequence> 
  <xsd:element name="userName" type="xsd:string" /> 
  <xsd:element name="password" type="xsd:string" /> 
  <xsd:element minOccurs="0" name="authentication" type="xsd:string" /> 
  <xsd:element minOccurs="0" name="locale" type="xsd:string" /> 
  <xsd:element minOccurs="0" name="timeZone" type="xsd:string" /> 
  </xsd:sequence> 
  </xsd:complexType> 
  </xsd:schema> 
  </wsdl:types> 
- <wsdl:message name="OpCreateSoapIn"> 
  <wsdl:part element="s0:OpCreate" name="parameters" /> 
  </wsdl:message> 
- <wsdl:message name="OpGetSoapOut"> 
  <wsdl:part element="s0:OpGetResponse" name="parameters" /> 
  </wsdl:message> 
- <wsdl:message name="ARAuthenticate"> 
  <wsdl:part element="s0:AuthenticationInfo" name="parameters" /> 
  </wsdl:message> 
- <wsdl:message name="OpGetListSoapOut"> 
  <wsdl:part element="s0:OpGetListResponse" name="parameters" /> 
  </wsdl:message> 
- <wsdl:message name="OpGetListSoapIn"> 
  <wsdl:part element="s0:OpGetList" name="parameters" /> 
  </wsdl:message> 
- <wsdl:message name="OpSetSoapIn"> 
  <wsdl:part element="s0:OpSet" name="parameters" /> 
  </wsdl:message> 
- <wsdl:message name="OpCreateSoapOut"> 
  <wsdl:part element="s0:OpCreateResponse" name="parameters" /> 
  </wsdl:message> 
- <wsdl:message name="OpSetSoapOut"> 
  <wsdl:part element="s0:OpSetResponse" name="parameters" /> 
  </wsdl:message> 
- <wsdl:message name="OpGetSoapIn"> 
  <wsdl:part element="s0:OpGet" name="parameters" /> 
  </wsdl:message> 
- <wsdl:portType name="testwsPortType"> 
- <wsdl:operation name="OpGet"> 
  <wsdl:input message="s0:OpGetSoapIn" /> 
  <wsdl:output message="s0:OpGetSoapOut" /> 
  </wsdl:operation> 
- <wsdl:operation name="OpCreate"> 
  <wsdl:input message="s0:OpCreateSoapIn" /> 
  <wsdl:output message="s0:OpCreateSoapOut" /> 
  </wsdl:operation> 
- <wsdl:operation name="OpGetList"> 
  <wsdl:input message="s0:OpGetListSoapIn" /> 
  <wsdl:output message="s0:OpGetListSoapOut" /> 
  </wsdl:operation> 
- <wsdl:operation name="OpSet"> 
  <wsdl:input message="s0:OpSetSoapIn" /> 
  <wsdl:output message="s0:OpSetSoapOut" /> 
  </wsdl:operation> 
  </wsdl:portType> 
- <wsdl:binding name="testwsSoapBinding" type="s0:testwsPortType"> 
  <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"; /> 
- <wsdl:operation name="OpGet"> 
  <soap:operation soapAction="urn:testws/OpGet" style="document" /> 
- <wsdl:input> 
  <soap:header message="s0:ARAuthenticate" part="parameters" use="literal" /> 
  <soap:body use="literal" /> 
  </wsdl:input> 
- <wsdl:output> 
  <soap:body use="literal" /> 
  </wsdl:output> 
  </wsdl:operation> 
- <wsdl:operation name="OpCreate"> 
  <soap:operation soapAction="urn:testws/OpCreate" style="document" /> 
- <wsdl:input> 
  <soap:header message="s0:ARAuthenticate" part="parameters" use="literal" /> 
  <soap:body use="literal" /> 
  </wsdl:input> 
- <wsdl:output> 
  <soap:body use="literal" /> 
  </wsdl:output> 
  </wsdl:operation> 
- <wsdl:operation name="OpGetList"> 
  <soap:operation soapAction="urn:testws/OpGetList" style="document" /> 
- <wsdl:input> 
  <soap:header message="s0:ARAuthenticate" part="parameters" use="literal" /> 
  <soap:body use="literal" /> 
  </wsdl:input> 
- <wsdl:output> 
  <soap:body use="literal" /> 
  </wsdl:output> 
  </wsdl:operation> 
- <wsdl:operation name="OpSet"> 
  <soap:operation soapAction="urn:testws/OpSet" style="document" /> 
- <wsdl:input> 
  <soap:header message="s0:ARAuthenticate" part="parameters" use="literal" /> 
  <soap:body use="literal" /> 
  </wsdl:input> 
- <wsdl:output> 
  <soap:body use="literal" /> 
  </wsdl:output> 
  </wsdl:operation> 
  </wsdl:binding> 
- <wsdl:service name="testwsService"> 
- <wsdl:port binding="s0:testwsSoapBinding" name="testwsSoap"> 
  <soap:address 
location="http://yoda/arsys/services/ARService?server=YODA&webService=testws"; 
/> 
  </wsdl:port> 
  </wsdl:service> 
  </wsdl:definitions> 

********** end of WSDL ************* 


modifying the WSDL from:


   <wsdl:message name="ARAuthenticate"> 
       <wsdl:part element="s0:AuthenticationInfo" name="parameters" /> 
   </wsdl:message> 

  <wsdl:operation name="OpCreate"> 
    <soap:operation soapAction="urn:testws/OpCreate" style="document" /> 
      <wsdl:input> 
        <soap:header message="s0:ARAuthenticate" part="parameters" 
use="literal" /> 
        <soap:body use="literal" /> 
      </wsdl:input> 

to: 

   <wsdl:message name="ARAuthenticate"> 
       <wsdl:part element="s0:AuthenticationInfo" name="header" /> 
   </wsdl:message> 

 <wsdl:operation name="OpCreate"> 
    <soap:operation soapAction="urn:testws/OpCreate" style="document" /> 
      <wsdl:input> 
        <soap:body use="literal" part="parameters"/> 
        <soap:header message="s0:ARAuthenticate" part="header" use="literal" /> 
      </wsdl:input> 


...and changing 'part="header"' in each applicable corresponding method 
resolved the issue.  Apparrently there is an issue with the fact that both the 
OpCreate and ARAuthenticate share the name "parameters" for their param lists 
-- just my guess.

Unfortunately, the publishing web service's WSDL is not able to be modified as 
it is generated dynamically from a CRM system.  Resolving this issue will allow 
consumption of Remedy AR System web services through ColdFusion MX7.

Here is the original post from the AXIS-User list:
http://www.nabble.com/-Axis-1.2--Sending-SOAP-request-parameters-in-BODY-instead-of-HEADER-tf2154309.html

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://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