Hi to both,
well, actually I had figured out how to do it by taking a look at
the source code. Let's suppose this is my message service with
two methods:
public class MyService {
Document methodA(Document xml) {
...
}
Document methodB(Document xml) {
...
}
}
1. In the WSDD deployment document you must put this:
<service name="MessageService" provider="java:MSG" >
<parameter name="className" value="MessageService"/>
<parameter name="allowedMethods" value="*"/>
</service>
where is important that you put "*" to list your methods.
Explicit listing of both methods does not work (I believe
is a bug in Axis).
2. Your client application must send this within the
SOAP-ENV:Body element:
<methodA>
<data>
</data>
</methodA>
or
<methodB>
<data>
</data>
</methodB>
You must notice that if you only had one method you
would send this:
<data>
</data>
Axis Message provider takes a look at the root tags within
your document to figure out which method to be called. Whether
this is the right way to do it is another issue.
Ramon.
> -----Original Message-----
> From: Stan Jordan [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, April 03, 2002 1:07 AM
> To: [EMAIL PROTECTED]
> Subject: Re: Document style service with two methods
>
>
> Ramon & Steve...
> This is not quite the answer you want, but may send you in the right
> direction. Take a look at this service:
>
> http://samples.gotdotnet.com/quickstart/aspplus/samples/servic
> es/MathService
> /VB/MathService.asmx
> The service is style="document" and provides four methods:
> float Add(float a, float b);
> float Subtract(float a, float b);
> float Multiply(float a, float b);
> float Divide(float a, float b);
> Do this:
> Create wsdl file with your browser, create stubs, and compile
> the stubs.
> Now compile & execute the client shown below. Works fine!
> By examining the stubs, maybe you will find what you are looking for.
> Cheers.
> Stan
> --------------------------------
> //This is client for a service with style="document"
> import org.tempuri.MathServiceLocator;
> import org.tempuri.MathServiceSoap;
>
> public class Client {
> public static void main(String [] args) throws Exception {
>
> MathServiceLocator service = new MathServiceLocator();
> MathServiceSoap port = service.getMathServiceSoap();
>
> System.out.println(" add= " + port.add(1.1F, 2.5F));
> System.out.println("multiply= " + port.multiply(1.1F, 2.0F));
> System.out.println(" divide= " + port.divide(10.0F, 3.0F));
> }
> }
>
> --------------------------------
> ----- Original Message -----
> From: "Steven Gollery" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Tuesday, April 02, 2002 1:34 PM
> Subject: RE: Document style service with two methods
>
>
> > Ramon,
> >
> > I have the same problem -- I've been hoping that someone
> with more Axis
> > experience than I have would jump in and either tell us how
> to do this
> > or confirm that it can't be done for some reason.
> >
> > The only solution I've been able to come up with is one that you've
> > probably already considered (and which I think is the same
> way that the
> > AdminClient works): have one service method, but put the real method
> > name in the document itself (probably in the root tag).
> Then the method
> > implementation checks to see what operation the client
> wants and calls
> > that method itself.
> >
> > But this seems unsatisfactory to me. Hopefully the Axis
> people can come
> > up with a better approach.
> >
> > Steve Gollery
> >
> > Ramon Turnes wrote:
> >
> > >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.
> >
> >
> >
> >
>
>