Pat,

You're correct -- you need to add an <operation> definition to your
WSDD to help Axis map the <ProvisioningTaskRequest> message to the
ProvisioningTaskRequestOperation method.

The format of the <operation> definition is:

        <operation name="ProvisioningTaskRequestOperation"
                   qname="ns:ProvisioningTaskRequest"
        />

(If you used wrapped style, you wouldn't have this problem.)

Anne


On 6/15/05, Feng Xie (fxie) <[EMAIL PROTECTED]> wrote:
>  
> Pat: 
>   
> Too bad to hear that. Don't give up. 
>   
> In my case ( Axis + Tomcat 5 ), the soapAction is always "" in WSDL. What I
> did is come up a very basic Java interface and let Java2WSDL to generate a
> base WSDL. I then enhance the WSDL. I noticed that the soapAction is "" in
> the based WSDL created by Java2WSDL. 
>   
> However, the soapAction in your WSDL is not "". Not sure whether that will
> affect the dispatch process. 
>   
> Feng
>  
>  ________________________________
>  From: Patrick Quinn [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, June 15, 2005 12:11 PM
> 
> To: [email protected]
> Subject: RE: No such operation error - malformed WSDL?
> 
>  
>  
> Feng 
>   
> no it didn't cure the problem I'm afraid. 
>   
> I've seen posts before about the same problem, but there doesn't seem to be
> an obvious remedy. 
>   
> If I knew for sure that this is a problem with the WSDL then I would be
> almost happy knowing that, and I could persevere in trying to cure it - but
> at the moment I am wondering whether it is Axis itself, or some
> configuration problem. 
>   
> I have heard that there are problems with Axis and 'doc/lit' style, and that
> it is better to use 'wrapped', but I am constrained to what our customer
> wants. 
>   
> At this stage I really don't want to ditch Axis and look for another SOAP
> engine ... :-/ 
>  
>  
> -----Original Message-----
> From: Feng Xie (fxie) [mailto:[EMAIL PROTECTED] 
> Sent: 15 June 2005 17:03
> To: [email protected]
> Subject: RE: No such operation error - malformed WSDL?
> 
>  
> Did it fix your problem ? 
>   
> WSDL2java probable doesn't pay attention onto the location line. 
>   
> -Feng
>  
>  ________________________________
>  From: Patrick Quinn [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, June 15, 2005 11:57 AM
> To: [email protected]
> Subject: RE: No such operation error - malformed WSDL?
> 
>  
>  
> This is the generated deployment file. Maybe it needs a description of the
> missing operation? 
> If so, I wonder why the WSDL2Java did not generate this? 
>   
>   
>   
>   
> <deployment
>     xmlns="http://xml.apache.org/axis/wsdd/";
>    
> xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
>   
>   <!-- Services from ProvisioningService WSDL service --> 
>   
>   <service name="ProvisioningTaskRequestPort"
> provider="java:RPC" style="document" use="literal">
>       <parameter name="wsdlTargetNamespace"
> value="urn:ProvidentProvisioningTNS"/>
>       <parameter name="wsdlServiceElement" value="ProvisioningService"/>
>       <parameter name="wsdlServicePort"
> value="ProvisioningTaskRequestPort"/>
>       <parameter name="className"
> value="ProvidentProvisioningTNS.ProvisioningTaskRequestSoap
> BindingSkeleton"/>
>       <parameter name="wsdlPortType"
> value="ProvisioningTaskRequestPortType"/>
>       <parameter name="allowedMethods" value="*"/> 
> 
>       <typeMapping
>         xmlns:ns="urn:ProvidentProvisioningTNS"
>         qname="ns:ProvisioningTaskRequest"
>        
> type="java:ProvidentProvisioningTNS._ProvisioningTaskRequest"
>        
> serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
>        
> deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
>         encodingStyle=""
>       />
>   </service>
> </deployment> 
>   
>  
>  
> -----Original Message-----
> From: Feng Xie (fxie) [mailto:[EMAIL PROTECTED] 
> Sent: 15 June 2005 16:22
> To: [email protected]
> Subject: RE: No such operation error - malformed WSDL?
> 
>  
> Patrick: 
>   
> Can you replace the location line in your wsdl with the following line and
> regenerate stub and skeleton ? 
>   
> <soap:address
> location="http://localhost:8880/axis/services/ProvisioningTaskRequestPort";>
>   
> Feng 
> 
>  
>  ________________________________
>  From: Patrick Quinn [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, June 15, 2005 10:37 AM
> To: [email protected]
> Subject: No such operation error - malformed WSDL?
> 
>  
>  
>  
>  
> Hi 
>   
> I have received a WSDL from a customer. The style is document/literal. The
> stubs/skeleton are generated fine when WSDL2Java is run, but a 'no such
> operation' error appears when the client code attempts the remote call with
> the bean. 
>   
>  
> Is there something incorrect in the WSDL that has caused the generated WSDD
> deployment file to be incomplete? 
>  
>   
> Many thanks for any help that can be provided. Data is below. 
>   
> Regards 
>   
> Patrick Quinn 
>   
>   
> error text 
>   
>   
> Exception in thread "main" AxisFault
>  faultCode:
> {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
>  faultSubcode: 
>  faultString: No such operation
> &apos;ProvisioningTaskRequest&apos;
>  faultActor: 
>  faultNode: 
>  faultDetail: 
>         {http://xml.apache.org/axis/}stackTrace: AxisFault
>  faultCode:
> {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
>  faultSubcode: 
>  faultString: No such operation
> &amp;apos;ProvisioningTaskRequest&amp;apos;
>  faultActor: 
>  faultNode: 
>  faultDetail: 
>   
> No such operation 'ProvisioningTaskRequest'
>         at
> org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)
> . . .
>         at
> org.apache.axis.client.Call.invoke(Call.java:1691)
>         at
> ProvidentProvisioningTNS.ProvisioningTaskRequestSoapBindingStub.provisioningTaskRequestOperation(ProvisioningTaskRequestSoapBindingStub.java:140)
>         at
> ProvidentProvisioningTNS.Main2.main(Main2.java:63) 
> 
> No such operation 'ProvisioningTaskRequest'
>         at
> org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)
> etc.
> 
>  
>  
>  
> The WSDL looks like this (I suspect it is based on the example found at
> www.w3.org/TR/wsdl): 
>   
>   
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/";
> xmlns:impl="urn:xml-soapadapter"
> xmlns:intf="urn:xml-soapadapter" x
> mlns:tns="urn:ProvidentProvisioningTNS"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> xmlns:wsdl="http://schemas.xmlsoap.org/ws
> dl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
> targetNamespace="urn:ProvidentProvisioningTNS"
> name="urn:ProvidentProv
> isioning">
>         <wsdl:types>
>                 <xsd:schema elementFormDefault="qualified"
> targetNamespace="urn:ProvidentProvisioningTNS">
>                         <xsd:element name="ProvisioningTaskRequest">
>                                 <xsd:complexType>
>                                         <xsd:sequence>
>                                                
> <xsd:element minOccurs="0" maxOccurs="1" name="REQUESTID"
> type="xsd:string"/>
>                                                
> <xsd:element minOccurs="0" maxOccurs="1" name="SOTYPE" type="xsd:string"/>
>                                                
> <xsd:element minOccurs="0" maxOccurs="1" name="PRIORITY" type="xsd:string"/>
>                                                
> <xsd:element minOccurs="0" maxOccurs="1" name="RECOVERY" type="xsd:string"/>
>                                                
> <xsd:element minOccurs="0" maxOccurs="1" name="XML_SO" type="xsd:string"/>
>                                         </xsd:sequence>
>                                 </xsd:complexType>
>                         </xsd:element>
>                 </xsd:schema>
>         </wsdl:types>
>         <message name="ProvisioningTaskRequestMessage">
>                 <part name="body"
> element="tns:ProvisioningTaskRequest"/>
>         </message>
>         <message name="ProvisioningTaskAckMessage">
>                 <part name="body" type="xsd:string"/>
>         </message>
>         <portType name="ProvisioningTaskRequestPortType">
>                 <operation
> name="ProvisioningTaskRequestOperation">
>                         <input
> message="tns:ProvisioningTaskRequestMessage"/>
>                         <output
> message="tns:ProvisioningTaskAckMessage"/>
>                 </operation>
>         </portType>
>         <binding name="ProvisioningTaskRequestSoapBinding"
> type="tns:ProvisioningTaskRequestPortType">
>                 <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>                 <operation
> name="ProvisioningTaskRequestOperation">
>                         <soap:operation
> soapAction="ProvidentProvisioningTNS/ProvisioningTaskRequestOperation"/>
>                         <input>
>                                 <soap:body use="literal"/>
>                         </input>
>                         <output>
>                                 <soap:body use="literal"/>
>                         </output>
>                 </operation>
>         </binding>
>         <service name="ProvisioningService">
>                 <documentation>Provident Provisioning
> Service</documentation>
>                 <port name="ProvisioningTaskRequestPort"
> binding="tns:ProvisioningTaskRequestSoapBinding">
>                         <soap:address
> location="http://localhost:8880/axis/services/ProvidentProvisioning"/>
>                 </port>
>         </service>
>         <!--  message declns -->
>         <!--  port type declns FINISHED -->
>         <!--  binding declns FINISHED -->
>         <!--  service decln  FINISHED  -->
> </wsdl:definitions> 
>   
>   
> 
> deploy.wsdd file 
>   
>  
> 
> <deployment
>     xmlns="http://xml.apache.org/axis/wsdd/";
>    
> xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
>   
>   <!-- Services from ProvisioningService WSDL service --> 
>   
>   <service name="ProvisioningTaskRequestPort"
> provider="java:RPC" style="document" use="literal">
>     <requestFlow>
>       <handler type="soapmonitor"/>
>     </requestFlow>
>     <responseFlow>
>       <handler type="soapmonitor"/>
>     </responseFlow>
>       <parameter name="wsdlTargetNamespace"
> value="urn:ProvidentProvisioningTNS"/>
>       <parameter name="wsdlServiceElement" value="ProvisioningService"/>
>       <parameter name="wsdlServicePort"
> value="ProvisioningTaskRequestPort"/>
>       <parameter name="className"
> value="ProvidentProvisioningTNS.ProvisioningTaskRequestSoapBindingSkeleton"
> />
>       <parameter name="wsdlPortType"
> value="ProvisioningTaskRequestPortType"/>
>       <parameter name="allowedMethods" value="*"/>
>       <parameter name="scope" value="Session"/> 
>   
>       <typeMapping
>         xmlns:ns="urn:ProvidentProvisioningTNS"
>         qname="ns:>ProvisioningTaskRequest"
>        
> type="java:ProvidentProvisioningTNS._ProvisioningTaskRequest"
>        
> serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
>        
> deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
>         encodingStyle=""
>       />
>   </service>
> </deployment>
>  
>   
>  
>  
>  
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit
> http://www.messagelabs.com/email 
> ______________________________________________________________________
> 
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit
> http://www.messagelabs.com/email 
> ______________________________________________________________________
> 
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit
> http://www.messagelabs.com/email 
> ______________________________________________________________________
>

Reply via email to