title: Warnings and Errors at Tomcat 6 startup
body: <p>I'm new to Tomcat, and have been tasked with migrating a Tomcat 5 / Java 1.4 application in Tomcat 6 / Java 6.</p>
  
  <p>On tomcat 6  startup in Eclipse I keep getting multiple warnings like :</p>
  
  <blockquote>
    <p>No rules found matching 'Server/GlobalNamingResources/ResourceParams/parameter/value'.
    6 août 2012 14:49:32 org.apache.tomcat.util.digester.Digester endElement
    (50 times or so...)</p>
  </blockquote>
  
  <p>Then</p>
  
  <blockquote>
    <p>[SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to   'org.eclipse.jst.jee.server:MyProject' did not find a matching property.
    6 août 2012 14:49:32 org.apache.tomcat.util.digester.SetPropertiesRule begin</p>
  </blockquote>
  
  <p>Then </p>
  
  <blockquote>
    <p>The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\METIER\MES\java\jdk1.6.0_11\bin; 
    [+ multiple different paths]
    6 août 2012 14:49:32 org.apache.coyote.http11.Http11Protocol init</p>
  </blockquote>
  
  <p>Then </p>
  
  <blockquote>
    <p>Could not get url for /javax/servlet/jsp/resources/jsp_2_1.xsd
    6 août 2012 14:49:32 org.apache.catalina.startup.DigesterFactory register</p>
  </blockquote>
  
  <p>Then, unsurprisingly, an exception on the webApp load()</p>
  
  <blockquote>
    <p>GRAVE: La servlet /SdcReaderService a généré une exception "load()"
    org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Log4JLogger does not implement Log
        at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:412)
        at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:525)
        at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:272)
        at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:246)
        at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:395)
        at org.apache.jasper.servlet.JspServlet.(JspServlet.java:58)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at java.lang.Class.newInstance0(Class.java:355)
        at java.lang.Class.newInstance(Class.java:308)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1104)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4364)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:516)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
        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:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
    6 août 2012 14:49:32 org.apache.tomcat.util.modeler.Registry registerComponent
    GRAVE: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/SdcReaderService,J2EEApplication=none,J2EEServer=none
    6 août 2012 14:49:32 org.apache.catalina.core.ApplicationContext log
    INFO: La servlet jsp est marqué comme indisponible
    6 août 2012 14:49:32 org.apache.catalina.core.StandardContext loadOnStartup
    GRAVE: La servlet  a généré une exception "load()"
    java.lang.NoClassDefFoundError: Could not initialize class org.apache.jasper.servlet.JspServlet
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at java.lang.Class.newInstance0(Class.java:355)
        at java.lang.Class.newInstance(Class.java:308)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1104)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4364)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:516)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
        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:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
    6 août 2012 14:49:32 org.apache.tomcat.util.modeler.Registry registerComponent
    GRAVE: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/,J2EEApplication=none,J2EEServer=none
    6 août 2012 14:49:32 org.apache.catalina.core.ApplicationContext log
    INFO: La servlet jsp est marqué comme indisponible
    6 août 2012 14:49:32 org.apache.catalina.core.StandardContext loadOnStartup
    GRAVE: La servlet /PlmIterableObjectServiceReader a généré une exception "load()"
    java.lang.NoClassDefFoundError: Could not initialize class org.apache.jasper.servlet.JspServlet
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at java.lang.Class.newInstance0(Class.java:355)
        at java.lang.Class.newInstance(Class.java:308)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1104)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4364)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:516)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
        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:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
    6 août 2012 14:49:32 org.apache.tomcat.util.modeler.Registry registerComponent
    GRAVE: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/PlmIterableObjectServiceReader,J2EEApplication=none,J2EEServer=none
    6 août 2012 14:49:33 org.apache.catalina.core.StandardContext addApplicationListener
    INFO: The listener "com.rolex.j2ee.MyProject.util.MyProjectServletCtxListener" is already configured for this context. The duplicate definition has been ignored.
    6 août 2012 14:49:33 org.apache.catalina.core.StandardContext addApplicationListener
    INFO: The listener "com.rolex.j2ee.MyProject.util.SessionListener" is already configured for this context. The duplicate definition has been ignored.
    6 août 2012 14:49:33 org.apache.catalina.core.ApplicationContext log
    INFO: La servlet jsp est marqué comme indisponible
    6 août 2012 14:49:33 org.apache.catalina.core.StandardContext loadOnStartup
    GRAVE: La servlet /MyProject a généré une exception "load()"
    java.lang.NoClassDefFoundError: Could not initialize class org.apache.jasper.servlet.JspServlet
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at java.lang.Class.newInstance0(Class.java:355)
        at java.lang.Class.newInstance(Class.java:308)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1104)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4364)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:516)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
        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:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
    6 août 2012 14:49:33 org.apache.tomcat.util.modeler.Registry registerComponent
    GRAVE: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/MyProject,J2EEApplication=none,J2EEServer=none</p>
  </blockquote>
  
  <p>I guess the problem comes from the configuration files of Tomcat, but I don't understand exactly what is the cause of each of the warnings/errors above. For instance, in the server.xml file, the global naming ressources seems correctly defined, so should I look for a missing resource Parameter block, or for some kind of syntax error in the file, or a missing .jar, or ... ? </p>
  
  <p>Any suggestion welcome !</p>