cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Kulp <daniel.k...@iona.com>
Subject Re: What is wrong with this WSDL?
Date Thu, 04 Jan 2007 16:01:50 GMT

Andrea,

The "name" attibutes on the input/output elements don't match from the 
portType to the binding.  Example:

PortType:   (no name attribute, thus no name)
<wsdl:input message="tns:CreateSequence" .... />

Binding:
             <wsdl:input name="CreateSequence">
                 <soap:body use="literal"/>
             </wsdl:input>
(name attribute defined)

WSDL4J detects the operations as being "different" and thus creates a new 
operation for it.  That's where the SKIP_OVERLOADED_OPERATION warning came 
from.

Enjoy!
Dan


On Thursday 04 January 2007 10:40, Andrea Smyth wrote:
> code-generating from the wsdl below (which is the original wsrm.wsdl to
> which I added the binding and service elements),  fails with:
>
> [INFO] [cxf-codegen:wsdl2java {execution: generate-sources}]
> 04-Jan-2007 15:26:19
> org.apache.cxf.tools.wsdl2java.processor.internal.PortTypeProcessor process
> WARNING: SKIP_OVERLOADED_OPERATION
> 04-Jan-2007 15:26:19
> org.apache.cxf.tools.wsdl2java.processor.internal.OperationProcessor
> processMethod
> WARNING: Problem outputting method for CreateSequence as no input
> message was found
> Error : Invalid WSDL,wsdl:operation: "CreateSequence" is not
> request-response or one-way
>
> If I replace the name of the input for the CreateSequenceOperation in
> the binding with CreateSequenceRequest it compiles fine.
> What is wrong with the wsdl:binding and wsdl:service definition, or is
> this a bug?
>
> Andrea.
>
> ---
>
> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
> xmlns:rm="http://schemas.xmlsoap.org/ws/2005/02/rm"
> xmlns:tns="http://schemas.xmlsoap.org/ws/2005/02/rm/wsdl"
> targetNamespace="http://schemas.xmlsoap.org/ws/2005/02/rm/wsdl">
>   <wsdl:types>
>     <xs:schema>
>       <xs:import namespace="http://schemas.xmlsoap.org/ws/2005/02/rm"
> schemaLocation="wsrm.xsd"/>
>       <xs:import
> namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing"
> schemaLocation="addressing.xsd"/>
>     </xs:schema>
>   </wsdl:types>
>   <wsdl:message name="CreateSequence">
>     <wsdl:part name="create" element="rm:CreateSequence"/>
>   </wsdl:message>
>   <wsdl:message name="CreateSequenceResponse">
>     <wsdl:part name="createResponse" element="rm:CreateSequenceResponse"/>
>   </wsdl:message>
>   <wsdl:message name="TerminateSequence">
>     <wsdl:part name="terminate" element="rm:TerminateSequence"/>
>   </wsdl:message>
>   <wsdl:portType name="SequenceAbsractPortType">
>     <wsdl:operation name="CreateSequence">
>       <wsdl:input message="tns:CreateSequence"
> wsa:Action="http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence"/>
>       <wsdl:output message="tns:CreateSequenceResponse"
> wsa:Action="http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequenceResponse
>"/> </wsdl:operation>
>     <wsdl:operation name="TerminateSequence">
>       <wsdl:input message="tns:TerminateSequence"
> wsa:Action="http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequenceResponse
>"/> </wsdl:operation>
>   </wsdl:portType>
>
>     <wsdl:binding name="SequenceSoapBinding"
> type="tns:SequenceAbsractPortType">
>         <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>         <wsdl:operation name="CreateSequence">
>             <soap:operation soapAction="" style="document"/>
>             <wsdl:input name="CreateSequence">
>                 <soap:body use="literal"/>
>             </wsdl:input>
>             <wsdl:output name="CreateSequenceResponse">
>                 <soap:body use="literal"/>
>             </wsdl:output>
>         </wsdl:operation>
>         <wsdl:operation name="TerminateSequence">
>             <soap:operation soapAction="" style="document"/>
>             <wsdl:input name="TerminateSequence">
>                 <soap:body use="literal"/>
>             </wsdl:input>
>         </wsdl:operation>
>     </wsdl:binding>
>
>     <wsdl:service name="SequenceService">
>         <wsdl:port binding="tns:SequenceSoapBinding" name="SequencePort">
>             <soap:address
> location="http://localhost:9001/SoapContext/SequencePort"/>
>         </wsdl:port>
>     </wsdl:service>
>
> </wsdl:definitions>

-- 
J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727    C: 508-380-7194
daniel.kulp@iona.com

Mime
View raw message