I am getting kind of frustrated trying to get this to work so I thought I'd
turn to the list for help. The solution to my problem is probably simple,
but I don't see it. Here's my problem:
Every time I make a soap request, it returns with the a fault string of
"java.lang.NoSuchMethodError".
I'm using Apache Soap running on Tomcat. I used the admin servlet to deploy
a test method. The deployment descriptor is set with these values:
ID: "urn:Test"
Scope: "Request"
Provider Type: "java"
Provider Class: "soapmail.MailAgent" (the class that has the test method)
Use Static Class: "false" (the test method was not static)
Methods: "testMethod" (the name of my test method is testMethod())
Type Mappings: [blank] (my test method returns a string)
Default Mapping Registry Class: [blank]
I've tried using my test method with two SOAP clients: Microsoft's Web
Services Behavior and a test Java program using Apache Soap. The main part
of the java code is:
Call call = new Call();
call.setTargetObjectURI("urn:Test");
call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
call.setMethodName("testMethod");
Response response = call.invoke(new
URL("http://localhost/soap/servlet/rpcrouter"), "");
This is the request that gets sent:
OK
accept()POST /soap/servlet/rpcrouter HTTP/1.0
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: 401
SOAPAction: ""
<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body>
<ns1:testMethod xmlns:ns1="urn:Test"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
</ns1:testMethod>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
The response is this:
HTTP/1.0 500 Internal Server Error
Content-Type: text/xml; charset=utf-8
Content-Length: 472
Set-Cookie2: JSESSIONID=6cuo3ftoa1;Version=1;Discard;Path="/soap"
Set-Cookie: JSESSIONID=6cuo3ftoa1;Path=/soap
Servlet-Engine: Tomcat Web Server/3.2.2 (JSP 1.1; Servlet 2.2; Java
1.3.0_02; Windows 2000 5.0 x86; java.vendor=Sun Microsystems Inc.)
<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns: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.Exception:</faultcode>
<faultstring>java.lang.NoSuchMethodError</faultstring>
<faultactor>/soap/servlet/rpcrouter</faultactor>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Any suggestions/comments would be welcome!
Thanks,
Alex