axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ezra J. Wise (JIRA)" <axis-...@ws.apache.org>
Subject [jira] Commented: (AXIS-2549) WSDL2Java incorrectly creates stub params to pass method paramters in SOAP request header
Date Thu, 24 Aug 2006 20:18:25 GMT
    [ http://issues.apache.org/jira/browse/AXIS-2549?page=comments#action_12430316 ] 
            
Ezra J. Wise commented on AXIS-2549:
------------------------------------

I've confirmed that changing the WSDL "name" value from "parameters" to "newName" in the following
WSDL snippet:

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

as well as changing the "part" value from "parameters" to "newName" for each operation, as
in the following snippet:

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

resolves the issue.  So the problem seems to be related to the fact that the OpCreate (for
example) and ARAuthenticate operations have the same name ("parameters" in this case) for
their parameter lists.

> 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: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message