Hi

Not sure but most likely it's to do with the way you've defined the binding for 
CreateSequence.

   <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>

specifically,

      <wsdl:input name="CreateSequence">
      <wsdl:output name="CreateSequenceResponse">

name attribute here should match an optional 'name' attribute on the corresponding input/output definition in the portType operation and there're no 'name' attributes are set there. The easiest option is just drop 'name' attribute in when defining input/output for CreateSequence and TerminateSequence. 'name' attributes are used only for overloading operations in rpc-encoded styles...

Cheers, Sergey



----- Original Message ----- From: "Andrea Smyth" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Thursday, January 04, 2007 3:40 PM
Subject: What is wrong with this WSDL?


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>

Reply via email to