That's because methods intended to be used with the messagerouter have different signatures than their RPC counterparts...
Every message based SOAP method must accept 3 parameters... a SOAPEnvelope, a request SOAPContext, and a response SOAPContext. That was alluded to you in the fault response you copied below, but I'll agree, it's not exactly obvious. Regards, ----- Original Message ----- From: "Jonathan Yue" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, May 22, 2002 5:39 PM Subject: RE: no signature match for message service > You can try > > shutdown server > restart > redeploy > > j. > > -----Original Message----- > From: Mark Vovsi [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, May 22, 2002 2:11 PM > To: [EMAIL PROTECTED] > Subject: no signature match for message service > Importance: High > > > I'm new to soap and trying to set up some message services. I've had no > problems with rpc type services, but with message services I'm getting a > "no signature match" error. I checked my classpath and everything seems to > be in place (my soap rpc examples work no problem), and I made sure that > the root element in the soap envelope (purchaseOrder in my case) has a > matching method name in my Java class. Here's the reply I get back from my > server implementation. Thanks in advance. Mark. > > <?xml version='1.0' encoding='UTF-8'?> > <SOAP-ENV:Envelope xmlns:SOAP-ENV > ="http://schemas.xmlsoap.org/soap/envelope/" xm > lns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd > ="http://www.w3.org > /1999/XMLSchema"> > <SOAP-ENV:Body> > <SOAP-ENV:Fault> > <faultcode>SOAP-ENV:Server</faultcode> > <faultstring>Exception while handling service request: > OrderProcessor.purchaseOr > der(org.apache.soap.Envelope,org.apache.soap.rpc.SOAPContext,org.apache.soap > .rpc > .SOAPContext) -- no signature match</faultstring> > <faultactor>/soap/servlet/messagerouter</faultactor> > <detail> > <stackTrace>java.lang.NoSuchMethodException: > OrderProcessor.purchaseOrder(org.ap > ache.soap.Envelope,org.apache.soap.rpc.SOAPContext,org.apache.soap.rpc.SOAPC > onte > xt) -- no signature match > at > org.apache.soap.util.MethodUtils.getEntryPoint(MethodUtils.java:194) > at org.apache.soap.util.MethodUtils.getMethod(MethodUtils.java:548) > at org.apache.soap.util.MethodUtils.getMethod(MethodUtils.java:528) > at > org.apache.soap.server.MessageRouter.invoke(MessageRouter.java:54) > at > org.apache.soap.providers.MsgJavaProvider.invoke(MsgJavaProvider.java > :125) > at > org.apache.soap.server.http.MessageRouterServlet.doPost(MessageRouter > Servlet.java:268) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl > icationFilterChain.java:247) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF > ilterChain.java:193) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV > alve.java:243) > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline > .java:566) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav > a:472) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextV > alve.java:190) > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline > .java:566) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav > a:472) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > > at > org.apache.catalina.core.StandardContext.invoke(StandardContext.java: > 2343) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j > ava:180) > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline > .java:566) > at > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche > rValve.java:170) > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline > .java:564) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j > ava:170) > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline > .java:564) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java: > 468) > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline > .java:564) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav > a:472) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal > ve.java:174) > at > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline > .java:566) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav > a:472) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > > at > org.apache.catalina.connector.http.HttpProcessor.process(HttpProcesso > r.java:1012) > at > org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.ja > va:1107) > at java.lang.Thread.run(Thread.java:479) > </stackTrace> > </detail> > </SOAP-ENV:Fault> > > </SOAP-ENV:Body> > </SOAP-ENV:Envelope>