-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

All,

I'm trying to get a webapp that has been running under TC 5.5 for
quite a while running under Tomcat 7.0. Everything is the same except
for my new server.xml:

<?xml version='1.0' encoding='utf-8'?>
<Server port="8066" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.core.AprLifecycleListener"
SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JasperListener" />
  <Listener
className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener
className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"

factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

  <Service name="Catalina">
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="150" minSpareThreads="25"/>

    <Connector port="8065"
               redirectPort="443"
               protocol="org.apache.coyote.ajp.AjpNioProtocol"
               URIEncoding="UTF-8" executor="tomcatThreadPool" />

    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">

    -->
    <Engine name="Catalina" defaultHost="localhost">
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
      </Host>
    </Engine>
  </Service>
</Server>


I get this in my catalina.out when I try to start (apologies for the
poor line-wrapping):

Oct 16, 2012 3:55:26 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal
performance in production environments was not found on the
java.library.path:
/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-6-openjdk/jre/lib/amd64:/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib/jni:/lib:/usr/lib
Oct 16, 2012 3:55:26 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8065"]
Oct 16, 2012 3:55:26 PM org.apache.tomcat.util.net.NioSelectorPool
getSharedSelector
INFO: Using a shared selector for servlet write/read
Oct 16, 2012 3:55:26 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 539 ms
Oct 16, 2012 3:55:27 PM org.apache.catalina.core.StandardService
startInternal
INFO: Starting service Catalina
Oct 16, 2012 3:55:27 PM org.apache.catalina.core.StandardEngine
startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.32
Oct 16, 2012 3:55:27 PM org.apache.catalina.startup.HostConfig
deployDirectory
INFO: Deploying web application directory /......./webapps/ROOT
Oct 16, 2012 3:55:27 PM org.apache.catalina.core.ContainerBase
addChildInternal
SEVERE: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component
[StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
        at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
        at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
        at
org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1105)
        at
org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1664)
        at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:636)
Caused by: java.lang.NoClassDefFoundError:
Lorg/apache/commons/logging/Log;
        at java.lang.Class.getDeclaredFields0(Native Method)
        at java.lang.Class.privateGetDeclaredFields(Class.java:2308)
        at java.lang.Class.getDeclaredFields(Class.java:1760)
        at
org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:87)
        at
org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:261)
        at
org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:140)
        at
org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:67)
        at
org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:405)
        at
org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881)
        at
org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369)
        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
        at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5173)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        ... 11 more
Caused by: java.lang.ClassNotFoundException:
org.apache.commons.logging.Log
        at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
        at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334)
        ... 25 more
Oct 16, 2012 3:55:27 PM org.apache.catalina.startup.HostConfig
deployDirectory
SEVERE: Error deploying web application directory /...../webapps/ROOT
java.lang.IllegalStateException: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component
[StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
        at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904)
        at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
        at
org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1105)
        at
org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1664)
        at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:636)
Oct 16, 2012 3:55:27 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8065"]
Oct 16, 2012 3:55:27 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 904 ms

I suspect the problem is that my webapp uses log4j but does not
include commons-logging. I'm guessing that log4j has some components
that depend upon commons-logging even though I don't use those components.

It seems clear to me that there are two ways to fix this:

1. Add commons-logging to my webapp's WEB-INF/lib directory
2. Configure Tomcat not to scan log4j.jar

I'm wondering if Tomcat should tolerate ClassNotFoundExceptions while
JAR-scanning... otherwise, a webapp that wants to use a library will
have to make sure *all* dependencies are installed alongside and not
just those that are actually required at runtime.

Thanks,
- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iEYEARECAAYFAlB9vkAACgkQ9CaO5/Lv0PBlzwCeLg6C9pqVXNbgTkJBUfHm6OIy
2xUAn2RFhpBGEb5kkpaCIPR68Un5RQjY
=Z5Lw
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to