[ http://issues.apache.org/jira/browse/AXIS-2570?page=all ]
Saif Rizvi updated AXIS-2570:
-----------------------------
Attachment: Test.jar
Jar of the classes generated by Axis WSDL2Java
> If the operation name is defined similar to the request element name in the
> wsdl schema type then wsdl2java generates incorrect classes.
> ----------------------------------------------------------------------------------------------------------------------------------------
>
> Key: AXIS-2570
> URL: http://issues.apache.org/jira/browse/AXIS-2570
> Project: Apache Axis
> Issue Type: Bug
> Components: WSDL processing
> Affects Versions: 1.4
> Environment: Windows XP, Tomcat Server - Version -
> jakarta-tomcat-5.0.28.,JDK - Version - java full version "1.5.0_06-b05"
> Reporter: Saif Rizvi
> Priority: Blocker
> Attachments: Test.jar, Test.wsdl
>
>
> Hi All
> I am using Axis 1.4 to create Java classes for my wsdl but i am facing a
> strange problem.
> If my wsdl has the operation name defined similar to the request element in
> the schemas the classes age generated faulty.
> For example, the below wsdl defines the request element TestInputRequest as :
> <message name="TestInputRequest">
> <part name="parameters" element="ns:TestInputRequest"/>
> </message>
> and soap operation name TestInputRequest as:
> <portType name="TestPortType">
> <operation name="TestInputRequest">
> <input message="ns:TestInputRequest"/>
> <output message="ns:TestOutputResponse"/>
> </operation>
> </portType>
> the classes generated have signatures which define the operation's input
> parameters and output parameters incorrectly(i.e. not complying with the
> wsdl).
> In the sample wsdl given below the classes generated have signatures as :
> package com.example.test;
> public interface TestPortType extends java.rmi.Remote {
> public void
> testInputRequest(com.example.test.TestInputRequestRequestElement1
> requestElement1, com.example.test.TestInputRequestRequestElement2
> requestElement2, com.example.test.TestInputRequestRequestElement3
> requestElement3,
> com.example.test.holders.TestOutputResponseResponseElement1Holder
> responseElement1,
> com.example.test.holders.TestOutputResponseResponseElement2Holder
> responseElement2,
> com.example.test.holders.TestOutputResponseResponseElement3Holder
> responseElement3) throws java.rmi.RemoteException;
> }
> So the generated web service does not give correct SOAP request and response.
> If the name of the request is made not similar to the operation name service
> gives correct SOAP request and response.
> Here is the sample wsdl.Classes generated with this using WSDL2Java can be
> used to replicate the problem.
> <WSDL:definitions xmlns:WSDL="http://schemas.xmlsoap.org/wsdl/"
> xmlns="http://schemas.xmlsoap.org/wsdl/"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
> xmlns:y="http://new.webservice.namespace"
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:ns="http://example.com/test/"
> xmlns:ns1="http://www.w3.org/2001/XMLSchema"
> targetNamespace="http://example.com/test/">
> <WSDL:types>
> <xs:schema targetNamespace="http://example.com/test/"
> xmlns="http://schemas.xmlsoap.org/wsdl/"
> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" elementFormDefault="qualified">
> <xs:import
> namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
> <xs:element name="TestInputRequest">
> <xs:complexType>
> <xs:sequence>
> <xs:element
> name="RequestElement1">
> <xs:complexType>
> <xs:sequence>
>
> <xs:element name="RequestSubElement1" type="xs:string"/>
>
> <xs:element name="RequestSubElement2" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> <xs:element
> name="RequestElement2">
> <xs:complexType>
> <xs:sequence>
>
> <xs:element name="RequestSubElement1" type="xs:string"/>
>
> <xs:element name="RequestSubElement2" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> <xs:element
> name="RequestElement3">
> <xs:complexType>
> <xs:sequence>
>
> <xs:element name="RequestSubElement1" type="xs:string"/>
>
> <xs:element name="RequestSubElement2" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> <xs:element name="TestOutputResponse">
> <xs:complexType>
> <xs:sequence>
> <xs:element
> name="ResponseElement1">
> <xs:complexType>
> <xs:sequence>
>
> <xs:element name="ResponseSubElement1" type="xs:string"/>
>
> <xs:element name="ResponseSubElement2" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> <xs:element
> name="ResponseElement2">
> <xs:complexType>
> <xs:sequence>
>
> <xs:element name="ResponseSubElement1" type="xs:string"/>
>
> <xs:element name="ResponseSubElement2" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> <xs:element
> name="ResponseElement3">
> <xs:complexType>
> <xs:sequence>
>
> <xs:element name="ResponseSubElement1" type="xs:string"/>
>
> <xs:element name="ResponseSubElement2" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> </xs:schema>
> </WSDL:types>
> <message name="TestInputRequest">
> <part name="parameters" element="ns:TestInputRequest"/>
> </message>
> <message name="TestOutputResponse">
> <part name="parameters" element="ns:TestOutputResponse"/>
> </message>
> <portType name="TestPortType">
> <operation name="TestInputRequest">
> <input message="ns:TestInputRequest"/>
> <output message="ns:TestOutputResponse"/>
> </operation>
> </portType>
> <binding name="Test" type="ns:TestPortType">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> <operation name="TestInputRequest">
> <soap:operation
> soapAction="http://example.com/test/TestInputRequest"/>
> <input>
> <SOAP:body parts="parameters" use="literal"/>
> </input>
> <output>
> <SOAP:body parts="parameters" use="literal"/>
> </output>
> </operation>
> </binding>
> <service name="Test">
> <port name="Test" binding="ns:Test">
> <soap:address
> location="http://localhost:8080/axis/services/Test"/>
> </port>
> </service>
> </WSDL:definitions>
--
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]