When I try to deploy SOAP using Tomcat 4.0, I can sometimes bring up the
SOAP admin client (http://localhost:8080/soap), but when I try to list,
deploy, undeploy, etc. services using the ServiceManagerClient, it says
that the RPCRouterServlet isn't a servlet. I'm currently running SOAP 2.2
under Linux (Redhat), and everything worked fine with Tomcat 3.2.2; it's
my changing to Tomcat 4.0 that has everything in a mess. My classpath is
the same except for some additional stuff at the end with Tomcat 4.0.
Since the servlet jar has changed, it ought to complain when I recompile
SOAP, but that compiles fine, and runs fine afterwards on Tomcat 3.2.2.
Here's what it's reporting:
[boehme@shinji addressbook]$ java
org.apache.soap.server.ServiceManagerClient
http://localhost:8080/soap/servlet/rpcrouter list
Exception in thread "main" [SOAPException: faultCode=SOAP-ENV:Protocol;
msg=Unsupported response content type "text/html", must be: "text/xml".
Response was:
<html>
<head>
<title>Tomcat Exception Report</title>
</head>
<body bgcolor="white">
<br><br>
<h1>A Servlet Exception Has Occurred</h1>
<h3>Exception Report:</h3>
<pre>
javax.servlet.ServletException: Class
org.apache.soap.server.http.RPCRouterServlet is not a Servlet
at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:813)
at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:602)
.
.
[more catalina locations]
.
.
</pre>
<h3>Root Cause:</h3>
<pre>
java.lang.ClassCastException: org.apache.soap.server.http.RPCRouterServlet
at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:809)
at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:602)
.
.
[more catalina locations]
.
.
</pre>
</body>
</html>
]
at org.apache.soap.rpc.Call.getEnvelopeString(Call.java:200)
at org.apache.soap.rpc.Call.invoke(Call.java:247)
at
org.apache.soap.server.ServiceManagerClient.invokeMethod(ServiceManagerClient.java:129)
at
org.apache.soap.server.ServiceManagerClient.list(ServiceManagerClient.java:151)
at
org.apache.soap.server.ServiceManagerClient.main(ServiceManagerClient.java:237)