You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Saif Rizvi (JIRA)" <ax...@ws.apache.org> on 2006/10/15 01:28:40 UTC
[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.
[ http://issues.apache.org/jira/browse/AXIS-2570?page=all ]
Saif Rizvi updated AXIS-2570:
-----------------------------
Attachment: Test.wsdl
wsdl to replicate the problem.
> 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.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