cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ben Brown (JIRA)" <j...@apache.org>
Subject [jira] Created: (CXF-956) Wsdl2java not creating service interface method signatures right for wrapped document literal
Date Thu, 30 Aug 2007 06:36:30 GMT
Wsdl2java not creating service interface method signatures right for wrapped document literal
---------------------------------------------------------------------------------------------

                 Key: CXF-956
                 URL: https://issues.apache.org/jira/browse/CXF-956
             Project: CXF
          Issue Type: Bug
    Affects Versions: 2.0.1
         Environment: Windows XP, Java 1.5
            Reporter: Ben Brown
            Priority: Minor


Created the following WSDL:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
	xmlns:tns="http://bar.org"
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="MyWebService"
	targetNamespace="http://bar.org">
	
	<!-- T Y P E S -->
	<wsdl:types>
	    <xsd:schema targetNamespace="http://foo.org/Transaction"
            elementFormDefault="qualified"
            xmlns="http://foo.org/Transaction"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">

		    <xsd:element name="Transaction" type="TransactionType"/>
		
		    <xsd:complexType name="TransactionType">
		        <xsd:sequence>
		            <xsd:element name="Source" type="xsd:double"/>
		            <xsd:element name="Dest" type="xsd:double"/>
		        </xsd:sequence>
		    </xsd:complexType>
		</xsd:schema>
	    
	    <xsd:schema targetNamespace="http://bar.org/TransactionResponse"
            elementFormDefault="qualified"
            xmlns="http://bar.org/TransactionResponse"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">

			<xsd:element name="TransactionResponse">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="SettlementToken" type="xsd:int"/>
						<xsd:element name="SettlementTime" type="xsd:dateTime"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:schema>
	    
		<xsd:schema targetNamespace="http://bar.org"
		    xmlns:ns0="http://foo.org/Transaction"
		    xmlns:ns1="http://bar.org/TransactionResponse"
		    xmlns="http://bar.org">

			<xsd:import namespace="http://foo.org/Transaction"/>
			<xsd:import namespace="http://bar.org/TransactionResponse"/>
			
			<xsd:element name="processTransaction">
			    <xsd:complexType>
			        <xsd:sequence>
			            <xsd:element ref="ns0:Transaction"/>
			            <xsd:element name="TransactionTime" type="xsd:dateTime"/>
			        </xsd:sequence>
			    </xsd:complexType>
			</xsd:element>
			
			<xsd:element name="processTransactionResponse">
			    <xsd:complexType>
			        <xsd:sequence>
			            <xsd:element ref="ns1:TransactionResponse"/>
			        </xsd:sequence>
			    </xsd:complexType>
			</xsd:element>
		</xsd:schema>
	</wsdl:types>
	
	<!-- M E S S A G E S -->
	<wsdl:message name="processTransactionRequest">
		<wsdl:part element="tns:processTransaction" name="parameters"/>
	</wsdl:message>
	<wsdl:message name="ProcessTransactionResponse">
		<wsdl:part element="tns:processTransactionResponse" name="parameters"/>
	</wsdl:message>
	
	<!-- P O R T   T Y P E -->
	<wsdl:portType name="MyWebServicePortType">
		<wsdl:operation name="processTransaction">
			<wsdl:input message="tns:processTransactionRequest"/>
			<wsdl:output message="tns:ProcessTransactionResponse"/>
		</wsdl:operation>
	</wsdl:portType>
	
	<!-- B I N D I N G -->
	<wsdl:binding name="MyWebServiceSOAP" type="tns:MyWebServicePortType">
		<soap:binding style="document"
			transport="http://schemas.xmlsoap.org/soap/http" />
		<wsdl:operation name="processTransaction">
			<soap:operation soapAction=""/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
	
	<!-- S E R V I C E -->
	<wsdl:service name="MyWebService">
		<wsdl:port binding="tns:MyWebServiceSOAP" name="MyWebServiceSOAP">
			<soap:address location="REPLACE_WITH_ACTUAL_URL"/>
		</wsdl:port>
	</wsdl:service>
</wsdl:definitions>

Ran with following command: "wsdl2java -verbose MyWebService.wsdl"

Got:
@WebService(targetNamespace = "http://bar.org", name = "MyWebServicePortType")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)

public interface MyWebServicePortType {

    @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
    @WebResult(targetNamespace = "http://bar.org", partName = "parameters", name = "processTransactionResponse")
    @WebMethod
    public org.bar.ProcessTransactionResponse processTransaction(
        @WebParam(targetNamespace = "http://bar.org", partName = "parameters", name = "processTransaction")
        org.bar.ProcessTransaction parameters
    );
}

I think should get something similar to:

@WebService(name = "MyWebServicePortType", targetNamespace = "http://bar.org")
@XmlSeeAlso({
    org.bar.transactionresponse.ObjectFactory.class,
    org.bar.ObjectFactory.class,
    org.foo.transaction.ObjectFactory.class
})
public interface MyWebServicePortType {


    /**
     * 
     * @param transaction
     * @param transactionTime
     * @return
     *     returns org.bar.transactionresponse.TransactionResponse
     */
    @WebMethod
    @WebResult(name = "TransactionResponse", targetNamespace = "http://bar.org/TransactionResponse")
    @RequestWrapper(localName = "processTransaction", targetNamespace = "http://bar.org",
className = "org.bar.ProcessTransaction")
    @ResponseWrapper(localName = "processTransactionResponse", targetNamespace = "http://bar.org",
className = "org.bar.ProcessTransactionResponse")
    public TransactionResponse processTransaction(
        @WebParam(name = "Transaction", targetNamespace = "http://foo.org/Transaction")
        TransactionType transaction,
        @WebParam(name = "TransactionTime", targetNamespace = "")
        XMLGregorianCalendar transactionTime);

}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message