You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Tom Jordahl <to...@macromedia.com> on 2003/09/03 17:19:44 UTC

RE: No such operation fault in doc\lit

You need to map the operation 'process' with the QName of the PurchaseOrder element.  This is the way Axis knows where to send the request.

<operation name="process" qname="operNS:PurchaseOrder" xmlns:operNS="urn:DoclitOrder" returnQName="getElementReturn" returnType="rtns:Element" xmlns:rtns="urn:DoclitOrder" >
      </operation>


You will have to fill in the returnQName and namespace to match what ever the service will return (if anything).

Hope this helps.
--
Tom Jordahl
Macromedia Server Development

-----Original Message-----
From: Dimuthu Leelarathne [mailto:muthulee@vijayaba.cse.mrt.ac.lk] 
Sent: Tuesday, September 03, 2002 12:22 AM
To: axis-user@ws.apache.org; axis-dev@ws.apache.org
Subject: No such operation fault in doc\lit 

I send this mail yesterday, but it doesn't appear in the list today. It has
got lost somehow, So I am sending it again. If there are multiple copies I
am really sorry about it.

hi,

I am hoping to write a doc/literal sample that does not use wsdl so that new
users can use it to understand doc/literal services without going into wsdl.
But I get a very puzzling behavior.
My soap message looks like this ...( good old purchaseOrder example).

<soapenv:Body>
<PurchaseOrder xmlns="urn:DoclitOrder">
<description xmlns="">Wood carving of an Elephant</description>
<item xmlns="">ER234</item>
<quantity xmlns="">1</quantity>
</PurchaseOrder>
</soapenv:Body>

But I get a fault string
 faultString: No such operation &apos; PurchaseOrder &apos;&#xd;
but the operation name ( whis is "process") travels in the http header. My
HTTP header is;

POST /axis/services/ProcessOrder
HTTP/1.0Content-Type: text/xml; charset=utf-8Accept: application/soap+xml,
application/dime, multipart/related, text/*
User-Agent: Axis/1.1RC2
Host: 127.0.0.1Cache-Control: no-cachePragma:
no-cacheSOAPAction: "process"
Content-Length: 462

I am using Axis - 1.0 for server side and TomCat 4.1.24. Now if I manually
replace the word "PurchaseOrder" with "process" in the SOAPMessage using
tcpMonitor. Everything works fine. I have given the wsdd I wrote below.

<service name="ProcessOrder" provider="java:RPC" style="document">
<parameter name="className" value="samples.doclit.SimpleProcessor"/>
<parameter name="allowedMethods" value="*"/>
<beanMapping
xmlns:ns="urn:DoclitOrder"
qname="ns:PurchaseOrder"
type="java:samples.doclit.PurchaseOrder"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
</service>

Any input is really appriciated.

Thanx,
Dimuthu.