[ 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]

Reply via email to