You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by E B <he...@yahoo.co.uk> on 2001/12/20 10:38:39 UTC

black magic mystery

This is about classloaders again. Same old problem
about message style soap services, and soap classes
in soap/WEB-INF/classes.

1. How do I find out which classloader loaded the 
classes shown in the stack trace?

2. In the stack trace that is shown below, 
   the class MessageServer is in the common/classes, 
   but soap is in its web-inf/classes. So soap's 
   class loader should be able to take the help of
   common classloader to load the MessageServer class.
   Why then does it complain?



  <?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</faultcode> 
  <faultstring>Exception while handling service
request:
MessageServer.processMessage(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:
MessageServer.processMessage(org.apache.soap.Envelope,org.apache.soap.rpc.SOAPContext,org.apache.soap.rpc.SOAPContext)
-- 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(MessageRouterServlet.java:268)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java,
Compiled Code) at
javax.servlet.http.HttpServlet.service(HttpServlet.java,
Compiled Code) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java,
Compiled Code) at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java,
Compiled Code) at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java,
Compiled Code) at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java,
Compiled Code) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java,
Compiled Code) at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java,
Compiled Code) at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java,
Compiled Code) at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java,
Compiled Code) at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java,
Compiled Code) at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java,
Compiled Code) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java,
Compiled Code) at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java,
Compiled Code) at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java,
Compiled Code) at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java,
Compiled Code) at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java,
Compiled Code) at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java,
Compiled Code) at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java,
Compiled Code) at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java,
Compiled Code) at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java,
Compiled Code) at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java,
Compiled Code) at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java,
Compiled Code) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java,
Compiled Code) at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java,
Compiled Code) at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java,
Compiled Code) at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java,
Compiled Code) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java,
Compiled Code) at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java,
Compiled Code) at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java,
Compiled Code) at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java,
Compiled Code) at java.lang.Thread.run(Thread.java,
Compiled Code)</stackTrace> 
  </detail>
  </SOAP-ENV:Fault>
  </SOAP-ENV:Body>
  </SOAP-ENV:Envelope>

__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com

--
To unsubscribe:   <ma...@jakarta.apache.org>
For additional commands: <ma...@jakarta.apache.org>
Troubles with the list: <ma...@jakarta.apache.org>


Re: black magic mystery

Posted by James Williamson <ja...@nameonthe.net>.
----- Original Message ----- 
From: E B <hello1790@yahoo.co.uk
> --- James Williamson <ja...@nameonthe.net> wrote: > >
> 
> > Have you tried starting up Tomcat under a debugger
> > (gdb) 
> 
> I have never used a debugger for java before,
> can gdb be used on java? strange.
> 
 Sorry, typo on my part, it should be jdb. 


--
To unsubscribe:   <ma...@jakarta.apache.org>
For additional commands: <ma...@jakarta.apache.org>
Troubles with the list: <ma...@jakarta.apache.org>


Re: black magic mystery

Posted by E B <he...@yahoo.co.uk>.
 --- James Williamson <ja...@nameonthe.net> wrote: > >

> Have you tried starting up Tomcat under a debugger
> (gdb) 

I have never used a debugger for java before,
can gdb be used on java? strange.



> >
> > 2. In the stack trace that is shown below,
> >    the class MessageServer is in the
> common/classes,
> >    but soap is in its web-inf/classes. So soap's
> >    class loader should be able to take the help of
> >    common classloader to load the MessageServer
> class.
> >    Why then does it complain?
> >
> 
> I'm not an expert but isn't there some known issue
> with SOAP and
> classloading?


I searched the tomcat archive with 'classloading soap'
and there is not much in it. I am on soap-user list 
since a long time, I have not come accross soln to 
this problem.



__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com

--
To unsubscribe:   <ma...@jakarta.apache.org>
For additional commands: <ma...@jakarta.apache.org>
Troubles with the list: <ma...@jakarta.apache.org>


Re: black magic mystery

Posted by James Williamson <ja...@nameonthe.net>.
From: E B <he...@yahoo.co.uk>

> This is about classloaders again. Same old problem
> about message style soap services, and soap classes
> in soap/WEB-INF/classes.
>
> 1. How do I find out which classloader loaded the
> classes shown in the stack trace?

Have you tried starting up Tomcat under a debugger (gdb) and then telling it
to break when
certain exceptions are thrown? When you get your exception you look at the
classloader of the class on the
top of the stack by doing something like this:

print this.getClass().getClassLoader()

Move up and down the stack to see which classes have been loaded by what....

>
> 2. In the stack trace that is shown below,
>    the class MessageServer is in the common/classes,
>    but soap is in its web-inf/classes. So soap's
>    class loader should be able to take the help of
>    common classloader to load the MessageServer class.
>    Why then does it complain?
>

I'm not an expert but isn't there some known issue with SOAP and
classloading?


--
To unsubscribe:   <ma...@jakarta.apache.org>
For additional commands: <ma...@jakarta.apache.org>
Troubles with the list: <ma...@jakarta.apache.org>