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 'ProvisioningTaskRequest'
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace: AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultSubcode:
faultString: No such operation 'ProvisioningTaskRequest'
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace: AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultSubcode:
faultString: No such operation &apos;ProvisioningTaskRequest&apos;
faultActor:
faultNode:
faultDetail:
faultString: No such operation &apos;ProvisioningTaskRequest&apos;
faultActor:
faultNode:
faultDetail:
No such operation
'ProvisioningTaskRequest'
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)
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)
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>
<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"/>
<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>
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
______________________________________________________________________
