You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Ramon Turnes <ra...@hermes.si> on 2002/03/14 16:42:17 UTC

Possible bug in Alpha1 RC2: Document style service with two metho ds

Actually my deployment file looks like this:

<!-- Use this file to deploy the service using the following command: -->
<!--       java org.apache.axis.client.AdminClient deploy.wsdd        -->

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

  <service name="MessageService" provider="java:MSG" >
    <parameter name="className" value="si.hermes.bc.server.MessageService"/>
    <parameter name="allowedMethods" value="TypeARequest TypeBRequest"/>
  </service>

</deployment>

but when invoking the service (follows SOAP Message)

<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><TypeARequest xmlns="http://server.bc.hermes.si">
<po>
<e1 xmlns:ns0="urn:foo">Hi!</e1>
<e1 xmlns:ns1="urn:foo">World</e1>
<e1 xmlns:ns2="urn:foo">Hello</e1>
</po>
</TypeARequest> </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

I get the following error:


 [java] Exception caught: java.lang.NoSuchMethodException: tried class:
hermes.bc.server.MessageService, 
method name:   TypeARequest TypeBRequest.

as if the MsgProvider tried to call a method called 
"TypeARequest TypeBRequest" not being aware that there are 
actually two methods. I have dedicated one whole day to this issue
and I think this is a bug because everything works fine if I remove
any of the methods from the deployment file: the right method is
always called.

Can perhaps somebody from the developers list clarify me
how does Axis know which method to call in NON-RPC
calls? 

Thanks.

Ramón.

> -----Original Message-----
> From: Ramon Turnes [mailto:ramon.turnes-perez@hermes.si]
> Sent: Thursday, March 14, 2002 11:57 AM
> To: 'axis-user@xml.apache.org'
> Subject: Document style service with two methods
> 
> 
> Hi,
> 
> I would like to have a service using Document style with two
> methods but it seems that this is not possible because the 
> message dispatcher for Document style services checks for
> a method with the following signature:
> 
> 
>   Document MyMethod(MessageContext mc, Document xml) {
>   .....
>   }
> 
> and the method name is not taken into consideration for
> deciding which method to call. But what if I want to have 
> two methods in my service, let's say a Registration method
> and a Ordering method? Should I provide then two endpoints
> for each of the methods (I saw an example in WSTK that does it).
> Can I do this with Document style services or I need to use RPC?
> 
> Thanks.
>