axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Samisa Abeysinghe <samisa_abeysin...@yahoo.com>
Subject RE: Question on "Soap method is not allowed to invoke"
Date Thu, 18 Nov 2004 01:46:01 GMT
Hi Duke,
   It is nice to hear that your service is working.
   
   May be your rpc service is not using complex types. Please have a look at the
http://nagoya.apache.org/jira/browse/AXISCPP-136 issue. Specially go through the comments
that I
have added. This issue is yet to be solved and surfaces when you have complex types involved
in
the messages. (To my knowlege it is not fixed, but if it is working, then we are through)

Thanks,
Samisa...


--- "Buster, Duke (NM75)" <Duke.Buster@honeywell.com> wrote:

> > Axis C++ uses "SOAPAction" HTTP header to locate 
> > the method being invoked.
> > By default Axis Java does not set this. 
> 
> Thanks!  Having the Java client set the SOAPAction solved the problem.
> 
> > BTW: Did you use Axis Java client from the same host? 
> 
> No.  My test client was C++ built from the wsdl.
> 
> > Even if you get the "method not allowed" problem fixed, 
> > in case you are using a RPC style C++ service, you would 
> > not be able to interoperate with a Java client because 
> > the SOAP stream sent by the server is incorrect. 
> 
> I am using an RPC style service, and it did work with a Java client.  I
> compared the XML from the Java client and the C++ test client.  There are
> some differences:
>   - Java client does not include the line:  <?xml version='1.0'
> encoding='utf-8' ?>
>   - Java client uses the keyword 'soapenv' versus 'soap-env' in the C++.
> Apparently, the differences were not significant.
> 
> In case someone cares, here is the XML from the two clients.
> 
> From Java client
> ----------------
> POST /axis/C4iToVirtualServer HTTP/1.0
> Content-Type: text/xml; charset=utf-8
> Accept: application/soap+xml, application/dime, multipart/related, text/*
> User-Agent: Axis/1.2beta
> Host: 127.0.0.1:80
> Cache-Control: no-cache
> Pragma: no-cache
> SOAPAction: "C4iToVirtualServer#processFreeTextMessage"
> Content-Length: 482
> <soapenv:Envelope 
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
> xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>   <soapenv:Body>
>     <junk that I took out to keep this shorter>
>   </soapenv:Body>
> </soapenv:Envelope>
> 
> From C++ test client
> --------------------
> POST /axis/C4iToVirtualServer HTTP/1.1
> Host: 127.0.0.1:80
> Content-Type: text/xml; charset=UTF-8
> SOAPAction: "C4iToVirtualServer#sendFreeTextMessage"
> Content-Length: 527
> <?xml version='1.0' encoding='utf-8' ?>
> <SOAP-ENV:Envelope 
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
> xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>   <SOAP-ENV:Body>
>     <junk that I took out to keep this shorter>
>   </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
> 
> 
> -Duke
> 
> -----Original Message-----
> From: Samisa Abeysinghe [mailto:samisa_abeysinghe@yahoo.com]
> Sent: Monday, November 15, 2004 6:27 PM
> To: Apache AXIS C User List
> Subject: Re: Question on "Soap method is not allowed to invoke"
> 
> 
> Axis C++ uses "SOAPAction" HTTP header to locate the method being invoked.
> By default Axis Java does not set this. This must be the reason that you are
> getting "Requested
> method is not allowed" (Yes, it should have said "SOAPAction missing" or
> something like that)
> 
> BTW: Did you use Axis Java client from the same host? 
> 
> Also: Even if you get the "method not allowed" problem fixed, in case you
> are using a RPC style
> C++ service, you would not be able to interoperate with a Java client
> because the SOAP stream sent
> by the server is incorrect. Additionally, if your Java client sends
> href/multiref tags, again the
> server will fail to deserialize SOAP. I have not tested doclit services with
> C++ server and Java
> client.
> 
> Thanks,
> Samisa...
> 
> 
> --- "Buster, Duke (NM75)" <Duke.Buster@honeywell.com> wrote:
> 
> > Howdy,
> > 
> > I am making my first attempt at a SOAP service using Axis C++ v1.3, and I
> am
> > running into the following error:  "Soap method is not allowed to invoke"
> > (with the extra goodie of "AxisWsddException:Requested method is not
> > allowed").
> > 
> > Here is the relevant excerpt from the server.wsdd:
> > <service name="C4iToVirtualServer" provider="CPP:RPC" description="yada
> > yada">
> >     <parameter name="className" value="C:\Program
> > Files\apache\Apache2\Axis\webservices\C4iToVirtualServer_dbg.dll"/>
> >     <parameter name="allowedMethods" value="initVirtualLink
> > sendFreeTextMessage sendMTO sendSplash "/>
> > </service>
> > 
> > Some notes and symptoms:
> > - The methods DO work when I use a test client on the same host and post
> the
> > requests to http://localhost/axis/C4iToVirtualServer ...
> > - The methods DON'T work when I use an Axis Java client on another host.
> I
> > get the "not allowed" error message.
> > - I thought about fiddling with "Directory" and "Limit" directives in the
> > Apache2 httpd.conf.  However, I'm not sure what I'm doing, and the
> > AxisWsddException implies that Axis is rejecting the request, not the HTTP
> > server.
> > 
> > Any suggestions?
> > 
> > 
> > Thanks!
> > 
> > -Duke
> > 
> > Duke Buster
> > Honeywell
> > duke.buster@honeywell.com
> > 
> > 
> > 
> 
> 
> 
> 		
> __________________________________ 
> Do you Yahoo!? 
> The all-new My Yahoo! - Get yours free! 
> http://my.yahoo.com 
>  
> 



		
__________________________________ 
Do you Yahoo!? 
Meet the all-new My Yahoo! - Try it today! 
http://my.yahoo.com 
 


Mime
View raw message