axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Saif Rizvi (JIRA)" <axis-...@ws.apache.org>
Subject [jira] Updated: (AXIS-2570) If the operation name is defined similar to the request element name in the wsdl schema type then wsdl2java generates incorrect classes.
Date Sat, 14 Oct 2006 23:39:35 GMT
     [ http://issues.apache.org/jira/browse/AXIS-2570?page=all ]

Saif Rizvi updated AXIS-2570:
-----------------------------

    Attachment: TestWithoutBug.jar

Classes generated as correctly complying to the request and response of the wsdl where operation
name is not same as the request element name.

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


Mime
View raw message