Tomcat 4.0b7 Load on Startup
Craig wrote: Servlets that load at startup are loaded from the webapp class loader (along with all other servlets, filters, and application event listeners), which checks things in the following order: /WEB-INF/classes of your web-app /WEB-INF/lib/*.jar of your web-app $CATALINA_HOME/lib $CATALINA_HOME/common/lib System class loader (configured in catalina.sh or catalina.bat from a predefined CLASSPATH) $JAVA_HOME/jre/lib/ext (i.e. the system extensions directory) Java runtime classes This should be an easy one to reproduce or explain away. I can't get Tomcat 4.0b7 to see classes in the webapps directory at startup. Try adding the following to your web.xml file. The class is already in the examples context. At startup, Tomcat shows a class not found error in the log file. Is there something else that is needed that I am missing here? !-- SnoopServlet -- servlet servlet-nameSnoopServlet/servlet-name servlet-classSnoopServlet/servlet-class load-on-startup7/load-on-startup /servlet 2001-08-14 20:56:35 StandardWrapper[/manager:SnoopServlet]: Marking servlet SnoopServlet as unavailable 2001-08-14 20:56:35 StandardContext[/manager]: Servlet /manager threw load() exception javax.servlet.ServletException: Wrapper cannot find servlet class SnoopServlet or a class it depends on at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:796) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3240 ) at org.apache.catalina.core.StandardContext.start(StandardContext.java:3350) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:785) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:415) at org.apache.catalina.core.StandardHost.install(StandardHost.java:643) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:599) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:777) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:463) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.ja va:155) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1131) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:278) at org.apache.catalina.core.StandardService.start(StandardService.java:368) at org.apache.catalina.core.StandardServer.start(StandardServer.java:473) at org.apache.catalina.startup.Catalina.start(Catalina.java:738) at org.apache.catalina.startup.Catalina.execute(Catalina.java:657) at org.apache.catalina.startup.Catalina.process(Catalina.java:178) at java.lang.reflect.Method.invoke(Native Method) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:202) - Root Cause - java.lang.ClassNotFoundException: SnoopServlet at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:12 64) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:11 13) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:790) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3240 ) at org.apache.catalina.core.StandardContext.start(StandardContext.java:3350) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:785) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:415) at org.apache.catalina.core.StandardHost.install(StandardHost.java:643) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:599) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:777) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:463) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.ja va:155) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1131) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:278) at org.apache.catalina.core.StandardService.start(StandardService.java:368) at org.apache.catalina.core.StandardServer.start(StandardServer.java:473) at org.apache.catalina.startup.Catalina.start(Catalina.java:738) at org.apache.catalina.startup.Catalina.execute(Catalina.java:657) at org.apache.catalina.startup.Catalina.process(Catalina.java:178) at java.lang.reflect.Method.invoke(Native Method) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:202) Reply Separator Subject:Re: Re[2]: war files. (tomcat 4.0 beta 7) Author: [EMAIL PROTECTED] Date: 8/14/2001 9:53 AM On Tue, 14 Aug 2001, Jonathan Pierce wrote: Use %CATALINA_HOME%\common\lib if you want a JAR file visible to both applications *and* Catalina
Re: Tomcat 4.0b7 Load on Startup
On Tue, 14 Aug 2001, Jonathan Pierce wrote: Craig wrote: Servlets that load at startup are loaded from the webapp class loader (along with all other servlets, filters, and application event listeners), which checks things in the following order: /WEB-INF/classes of your web-app /WEB-INF/lib/*.jar of your web-app $CATALINA_HOME/lib $CATALINA_HOME/common/lib System class loader (configured in catalina.sh or catalina.bat from a predefined CLASSPATH) $JAVA_HOME/jre/lib/ext (i.e. the system extensions directory) Java runtime classes This should be an easy one to reproduce or explain away. I can't get Tomcat 4.0b7 to see classes in the webapps directory at startup. Try adding the following to your web.xml file. The class is already in the examples context. At startup, Tomcat shows a class not found error in the log file. Is there something else that is needed that I am missing here? !-- SnoopServlet -- servlet servlet-nameSnoopServlet/servlet-name servlet-classSnoopServlet/servlet-class load-on-startup7/load-on-startup /servlet I hope you did this on the examples webapp, or on some other webapp where SnoopServlet.class already exists :-) It doesn't exist in the Manager webapp, just as a for instance :-) :-). I just edited the web.xml file for the examples app, and changed the entry for the snoop servlet there, and the log says: 2001-08-14 19:07:30 snoop: init immediately after a Tomcat restart. This also works for me on every Struts app I've ever tried. Craig
Re[2]: Tomcat 4.0b7 Load on Startup
Craig, I feel really stupid now. I'm sorry for wasting your time on this. I was putting the entry in the conf/web.xml file like you guessed, instead of the servlet context web.xml file where it belongs. I'll try to be more careful in the future. Jonathan Reply Separator Subject:Re: Tomcat 4.0b7 Load on Startup Author: [EMAIL PROTECTED] Date: 8/14/2001 7:05 PM On Tue, 14 Aug 2001, Jonathan Pierce wrote: Craig wrote: Servlets that load at startup are loaded from the webapp class loader (along with all other servlets, filters, and application event listeners), which checks things in the following order: /WEB-INF/classes of your web-app /WEB-INF/lib/*.jar of your web-app $CATALINA_HOME/lib $CATALINA_HOME/common/lib System class loader (configured in catalina.sh or catalina.bat from a predefined CLASSPATH) $JAVA_HOME/jre/lib/ext (i.e. the system extensions directory) Java runtime classes This should be an easy one to reproduce or explain away. I can't get Tomcat 4.0b7 to see classes in the webapps directory at startup. Try adding the following to your web.xml file. The class is already in the examples context. At startup, Tomcat shows a class not found error in the log file. Is there something else that is needed that I am missing here? !-- SnoopServlet -- servlet servlet-nameSnoopServlet/servlet-name servlet-classSnoopServlet/servlet-class load-on-startup7/load-on-startup /servlet I hope you did this on the examples webapp, or on some other webapp where SnoopServlet.class already exists :-) It doesn't exist in the Manager webapp, just as a for instance :-) :-). I just edited the web.xml file for the examples app, and changed the entry for the snoop servlet there, and the log says: 2001-08-14 19:07:30 snoop: init immediately after a Tomcat restart. This also works for me on every Struts app I've ever tried. Craig