[
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]