Hello,

I have a problem extending the webappclassLoader.
In the company I work for, we are using eclipse as our IDE. We have multple
projects in eclipse and we would like to have an in-place deployment (so
tomcat works on the (bin) directories of our eclipse projects). That way we
don't have to copy all the modified classes over all the time to a
WEB-INF/classes folder.  I do realize that the WEB-INF/classes is the
correct place to put these classes. And in our continuous integration
environment we are using a war to deploy our application. However to ease
and speed up the development and test process we would like to have Tomcat
to look in our bin directories of eclipse to find our class files.

For this to work I have created an InPlaceDeployWebappClassLoader which
extends of the default WebappClassLoader. However if i add a <Loader> tag to
my server.xml configuration file. I always get the following exception:

SEVERE: Error loading WebappClassLoader
  delegate: false
  repositories:
    /WEB-INF/classes/
----------> Parent Classloader:
[EMAIL PROTECTED]
 org.apache.jasper.servlet.JspServlet
java.lang.ClassNotFoundException: org.apache.jasper.servlet.JspServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(
WebappClassLoader.java:1338)
    at org.apache.catalina.loader.WebappClassLoader.loadClass (
WebappClassLoader.java:1187)
    at org.apache.catalina.core.StandardWrapper.loadServlet(
StandardWrapper.java:1027)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java
:925)
    at org.apache.catalina.core.StandardContext.loadOnStartup (
StandardContext.java:3880)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java
:4141)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
    at org.apache.catalina.core.StandardHost.start (StandardHost.java:718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java
:442)
    at org.apache.catalina.core.StandardService.start (StandardService.java
:450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java
:680)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:536)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke (Method.java:585)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:275)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
5-dec-2005 14:55:24 org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /HotDeployOnTomcat threw load() exception
java.lang.ClassNotFoundException: org.apache.jasper.servlet.JspServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(
WebappClassLoader.java :1338)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(
WebappClassLoader.java:1187)
    at org.apache.catalina.core.StandardWrapper.loadServlet(
StandardWrapper.java:1027)
    at org.apache.catalina.core.StandardWrapper.load (StandardWrapper.java
:925)
    at org.apache.catalina.core.StandardContext.loadOnStartup(
StandardContext.java:3880)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java
:4141)
    at org.apache.catalina.core.ContainerBase.start (ContainerBase.java
:1012)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
    at org.apache.catalina.core.StandardEngine.start (StandardEngine.java
:442)
    at org.apache.catalina.core.StandardService.start(StandardService.java
:450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java
:680)
    at org.apache.catalina.startup.Catalina.start (Catalina.java:536)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (
DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:275)
    at org.apache.catalina.startup.Bootstrap.main (Bootstrap.java:413)
5-dec-2005 14:55:24 org.apache.commons.modeler.Registry registerComponent
SEVERE: Null component
Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/HotDeployOnTomcat,J2EEApplication=none,J2EEServer=none

5-dec-2005 14:55:25 org.apache.coyote.http11.Http11BaseProtocol start

Even if I use the loader tag with the default loaderClass
(WebappClassLoader) I get this exception?

Can someone tell me where I have to put the class file of my custom
webappclassloader, currently it is in $CATALINA_HOME/server/classes

Thanks in advance,
Kind Regards,

Reply via email to