All,

There are several questions, some based on my confusion surrounding message-style 
services.  Sorry for overloading a single post.

The axis user's guide states there are four valid signatures for message style 
services:

public Element [] method(Element [] bodies);
public SOAPBodyElement [] method (SOAPBodyElement [] bodies);
public Document method(Document body);
public void method(SOAPEnvelope req, SOAPEnvelope resp);

Where archive is the name of my method...
I first implemented public Document archive(Document body) with partial success.  My 
service successfully receives the xml document that I put in the body.  But when I 
echo the document back, the SOAP response only contains:  14c.  To echo, my method 
simply returns the body.

When I tried implementing public void archive(SOAPEnvelope req, SOAPEnvelope resp) on 
deployment I get:

java.lang.Exception: Method 'archive' does not match any of the valid signatures for 
message-style service methods

Finally, there is some confusion on my part on exactly how the axis identifies which 
method to call on my webservice.  I remember reading that for message-style services 
the namespace of the first element in the body is used to identify the method.  Is 
this true, or just my faulty memory?  However looking at the axis Message sample, I 
can find no reference that can be mapped to the actual method to call.  The namespace 
is urn:foo.  The wsdd exposes only the single method.  Does axis default to this when 
only one method is identified?  What if two methods are identified in the wsdd?


Thanks,

Steve

Reply via email to