Incorrect WSDL generated for service interfaces passing SDO DataObjects
------------------------------------------------------------------------
Key: TUSCANY-1556
URL: https://issues.apache.org/jira/browse/TUSCANY-1556
Project: Tuscany
Issue Type: Bug
Components: Java SCA Axis Binding Extension
Reporter: Jean-Sebastien Delfino
Fix For: Java-SCA-Next
Here's an easy way to reproduce the problem:
Add a sleep statement to itest/wsdlless SDOWSDLTestCase.tearDown() to keep the
server running a while, start that test case, then point your Web browser to
http://localhost:8085/AccountService?wsdl.
You'll get a WSDL containing incorrect XSDs, as they are completely different
from the XSDs representing the SDOs on the AccountService interface. The
namespaces are not correct, the element and type definitions are not correct
either.
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://accountdata.services.account.bigbank"
xmlns:axis2="http://accountdata.services.account.bigbank"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
xmlns:ns="http://accountdata.services.account.bigbank/xsd"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://account.bigbank.com/xsd"
xmlns:ax29="http://account.bigbank.com/xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="AccountLog" type="ax29:AccountLog"/>
<xs:complexType name="AccountLog">
<xs:sequence>
<xs:element name="accountLogEntries" nillable="true" type="xs:anyType"/>
<xs:element name="stockLogEntries" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="AccountReport" type="ax29:AccountReport"/>
<xs:complexType name="AccountReport">
<xs:sequence>
<xs:element name="accountSummaries" nillable="true" type="xs:anyType"/>
<xs:element name="stockSummaries" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="CustomerProfileData" type="ax29:CustomerProfileData"/>
<xs:complexType name="CustomerProfileData">
<xs:sequence>
<xs:element name="address" nillable="true" type="xs:string"/>
<xs:element name="email" nillable="true" type="xs:string"/>
<xs:element name="firstName" nillable="true" type="xs:string"/>
<xs:element name="id" type="xs:int"/>
<xs:element name="lastName" nillable="true" type="xs:string"/>
<xs:element name="loginID" nillable="true" type="xs:string"/>
<xs:element name="password" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="StockSummary" type="ax29:StockSummary"/>
<xs:complexType name="StockSummary">
<xs:sequence>
<xs:element name="company" nillable="true" type="xs:string"/>
<xs:element name="currentPrice" type="xs:float"/>
<xs:element name="highPrice" type="xs:float"/>
<xs:element name="lowPrice" type="xs:float"/>
<xs:element name="purchaseDate" nillable="true" type="xs:string"/>
<xs:element name="purchaseLotNumber" type="xs:int"/>
<xs:element name="purchasePrice" type="xs:float"/>
<xs:element name="quantity" type="xs:int"/>
<xs:element name="symbol" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://accountdata.services.account.bigbank/xsd"
xmlns:ns0="http://account.bigbank.com/xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="getAccountLog">
<xs:complexType>
<xs:sequence>
<xs:element name="param0" nillable="true" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getAccountLogResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" nillable="true" type="ns0:AccountLog"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getAccountReport">
<xs:complexType>
<xs:sequence>
<xs:element name="param0" nillable="true" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getAccountReportResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" nillable="true" type="ns0:AccountReport"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="createAccount">
<xs:complexType>
<xs:sequence>
<xs:element name="param0" nillable="true" type="ns0:CustomerProfileData"/>
<xs:element name="param1" nillable="true" type="xs:boolean"/>
<xs:element name="param2" nillable="true" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="createAccountResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" nillable="true" type="ns0:CustomerProfileData"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getCustomerProfile">
<xs:complexType>
<xs:sequence>
<xs:element name="param0" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getCustomerProfileResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" nillable="true" type="ns0:CustomerProfileData"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="purchaseStock">
<xs:complexType>
<xs:sequence>
<xs:element name="param0" nillable="true" type="xs:int"/>
<xs:element name="param1" nillable="true" type="ns0:StockSummary"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="purchaseStockResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" nillable="true" type="ns0:StockSummary"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="sellStock">
<xs:complexType>
<xs:sequence>
<xs:element name="param0" nillable="true" type="xs:int"/>
<xs:element name="param1" nillable="true" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="sellStockResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" nillable="true" type="ns0:StockSummary"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="deposit">
<xs:complexType>
<xs:sequence>
<xs:element name="param0" nillable="true" type="xs:string"/>
<xs:element name="param1" nillable="true" type="xs:float"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="depositResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" nillable="true" type="xs:float"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="withdraw">
<xs:complexType>
<xs:sequence>
<xs:element name="param0" nillable="true" type="xs:string"/>
<xs:element name="param1" nillable="true" type="xs:float"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="withdrawResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" nillable="true" type="xs:float"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="getAccountReportMessage">
<wsdl:part name="part1" element="ns:getAccountReport">
</wsdl:part>
</wsdl:message>
<wsdl:message name="sellStockResponseMessage">
<wsdl:part name="part1" element="ns:sellStockResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="depositResponseMessage">
<wsdl:part name="part1" element="ns:depositResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getAccountLogMessage">
<wsdl:part name="part1" element="ns:getAccountLog">
</wsdl:part>
</wsdl:message>
<wsdl:message name="withdrawResponseMessage">
<wsdl:part name="part1" element="ns:withdrawResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="createAccountMessage">
<wsdl:part name="part1" element="ns:createAccount">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getCustomerProfileResponseMessage">
<wsdl:part name="part1" element="ns:getCustomerProfileResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="sellStockMessage">
<wsdl:part name="part1" element="ns:sellStock">
</wsdl:part>
</wsdl:message>
<wsdl:message name="withdrawMessage">
<wsdl:part name="part1" element="ns:withdraw">
</wsdl:part>
</wsdl:message>
<wsdl:message name="createAccountResponseMessage">
<wsdl:part name="part1" element="ns:createAccountResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getAccountLogResponseMessage">
<wsdl:part name="part1" element="ns:getAccountLogResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="depositMessage">
<wsdl:part name="part1" element="ns:deposit">
</wsdl:part>
</wsdl:message>
<wsdl:message name="purchaseStockResponseMessage">
<wsdl:part name="part1" element="ns:purchaseStockResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="purchaseStockMessage">
<wsdl:part name="part1" element="ns:purchaseStock">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getAccountReportResponseMessage">
<wsdl:part name="part1" element="ns:getAccountReportResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getCustomerProfileMessage">
<wsdl:part name="part1" element="ns:getCustomerProfile">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="AccountDataServicePortType">
<wsdl:operation name="getAccountLog">
<wsdl:input message="axis2:getAccountLogMessage"
wsaw:Action="urn:getAccountLog">
</wsdl:input>
<wsdl:output message="axis2:getAccountLogResponseMessage"
wsaw:Action="urn:getAccountLog">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getAccountReport">
<wsdl:input message="axis2:getAccountReportMessage"
wsaw:Action="urn:getAccountReport">
</wsdl:input>
<wsdl:output message="axis2:getAccountReportResponseMessage"
wsaw:Action="urn:getAccountReport">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="createAccount">
<wsdl:input message="axis2:createAccountMessage"
wsaw:Action="urn:createAccount">
</wsdl:input>
<wsdl:output message="axis2:createAccountResponseMessage"
wsaw:Action="urn:createAccount">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getCustomerProfile">
<wsdl:input message="axis2:getCustomerProfileMessage"
wsaw:Action="urn:getCustomerProfile">
</wsdl:input>
<wsdl:output message="axis2:getCustomerProfileResponseMessage"
wsaw:Action="urn:getCustomerProfile">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="purchaseStock">
<wsdl:input message="axis2:purchaseStockMessage"
wsaw:Action="urn:purchaseStock">
</wsdl:input>
<wsdl:output message="axis2:purchaseStockResponseMessage"
wsaw:Action="urn:purchaseStock">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="sellStock">
<wsdl:input message="axis2:sellStockMessage" wsaw:Action="urn:sellStock">
</wsdl:input>
<wsdl:output message="axis2:sellStockResponseMessage"
wsaw:Action="urn:sellStock">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="deposit">
<wsdl:input message="axis2:depositMessage" wsaw:Action="urn:deposit">
</wsdl:input>
<wsdl:output message="axis2:depositResponseMessage"
wsaw:Action="urn:deposit">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="withdraw">
<wsdl:input message="axis2:withdrawMessage" wsaw:Action="urn:withdraw">
</wsdl:input>
<wsdl:output message="axis2:withdrawResponseMessage"
wsaw:Action="urn:withdraw">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AccountDataServiceSOAP11Binding"
type="axis2:AccountDataServicePortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getAccountLog">
<soap:operation soapAction="urn:getAccountLog" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getAccountReport">
<soap:operation soapAction="urn:getAccountReport" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="createAccount">
<soap:operation soapAction="urn:createAccount" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getCustomerProfile">
<soap:operation soapAction="urn:getCustomerProfile" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="purchaseStock">
<soap:operation soapAction="urn:purchaseStock" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="sellStock">
<soap:operation soapAction="urn:sellStock" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="deposit">
<soap:operation soapAction="urn:deposit" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="withdraw">
<soap:operation soapAction="urn:withdraw" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="AccountDataService">
<wsdl:port name="AccountDataServiceSOAP11port"
binding="axis2:AccountDataServiceSOAP11Binding">
<soap:address location="http://9.67.28.200:8085/AccountService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]