Pat:
It's a little strange to me that your deploy.wsdd ( which is generated
from WSDL2java, I assume ) doesn't have operation def.
You not only need add operation , perhaps need to add parameters for
this operation. Here is a snippet from my deploy.wsdd:
<service name="SystemDataMgrPort" provider="java:RPC" style="document"
use="literal">
<parameter name="wsdlTargetNamespace"
value="http://provision.xxx.yyy.com/wsdl"/>
<parameter name="wsdlServiceElement" value="ProvisionIF_Service"/>
<parameter name="wsdlServicePort" value="SystemDataMgrPort"/>
<parameter name="className"
value="com.xxx.yyy.provision.wsdl.SystemDataMgrBindingImpl"/>
<parameter name="wsdlPortType" value="SystemDataMgr"/>
<parameter name="typeMappingVersion" value="1.1"/>
<operation name="getApplicationSysData"
qname="getApplicationSysData" soapAction="" >
<parameter qname="pns:soapReqHeader"
xmlns:pns="http://provision.xxx.yyy.com/types"
type="tns:soapReqHeaderType"
xmlns:tns="http://provision.xxx.yyy.com/types" inHeader="true"/>
One thing I notice about your wsdl is it mixed type definition and
element definition together. You might want to generate a simple wsdl
from your java interface and get to know what does Axis tool like, then
modify your wsdl.
My wsdl has separate type definition and element definition and the
generated deploy.wsdd works fine ( doesn't require any extra touch ).
Hope it helps,
Feng
-----Original Message-----
From: Patrick Quinn [mailto:[EMAIL PROTECTED]
Sent: Wednesday, June 15, 2005 3:55 PM
To: [email protected]
Subject: No such operation error - malformed WSDL?
Thanks Anne, Feng
You have both given me food for thought and I won't give up.
Anne, I did try adding the operation definition as you suggested. See
below:
<deployment
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<!-- Services from ProvisioningService WSDL service -->
<parameter name="wsdlServicePort"
value="ProvisioningTaskRequestPort"/>
<parameter name="className"
value="ProvidentProvisioningTNS.ProvisioningTa
skRequestSoapBindingSkeleton"/>
<parameter name="wsdlPortType"
value="ProvisioningTaskRequestPortType"/>
<parameter name="allowedMethods" value="*"/>
<operation name="ProvisioningTaskRequestOperation"
qname="ns:ProvisioningTaskRequest"
/>
<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>
But I now get the following error:
Exception in thread "main" AxisFault
faultCode:
{http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: org.apache.axis.InternalException: java.lang.Exception:
Couldn't find a matching Java operation for WSDD operation
"ProvisioningTaskRequestOperation" (0 args)
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace: AxisFault
faultCode:
{http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: org.apache.axis.InternalException: java.lang.Exception:
Couldn& ;apos;t find a matching Java operation for WSDD operation
&quot;Provisioning TaskRequestOperation&quot; (0 args)
faultActor:
faultNode:
faultDetail:
org.apache.axis.InternalException: java.lang.Exception: Couldn't find a
matching Java operation for WSDD operation
"ProvisioningTaskRequestOperation"
(0 args)
Is this something obvious, or is it better to take Feng's advice and
build from scratch using Java2WSDL?
Thanks again,
Pat
-----Original Message-----
From: Anne Thomas Manes [mailto:[EMAIL PROTECTED]
Sent: Wed 15/06/2005 18:27
To: [email protected]
Cc:
Subject: Re: No such operation error - malformed WSDL?
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
>
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________