You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Mahesh Joshi <jo...@comcast.net> on 2003/09/24 08:24:33 UTC

Tomcat 4.1.24 (or 27) with Log4j 1.2.8 - Tomcat does not start

Hi All,

I am migrating my current application to use Struts 1.1 and I am facing a
problem. My current app. has logging implemented with
log4J 1.2.8.

I am facing a bizzare problem when using Log4J 1.2.8 with Tomcat 4.1.24 (or
Tomcat 4.1.27) on Windows 2000 with JDK 1.4.1_02

When I put my log4j -1.2.8 in the jak*/common/lib directory, Tomcat refuses
to start

The exception throw is as follows:

org.apache.commons.logging.LogConfigurationException:
org.apache.commons.logging
.LogConfigurationException: No suitable Log constructor
[Ljava.lang.Class;@1a679
b7 for org.apache.commons.logging.impl.Log4JLogger
        at
org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactory
Impl.java:532)
        at
org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactory
Impl.java:272)
        at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:414)
        at org.apache.commons.digester.Digester.<init>(Digester.java:346)
        at
org.apache.catalina.startup.Catalina.createStartDigester(Catalina.jav
a:280)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:441)
        at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
        at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
Caused by: org.apache.commons.logging.LogConfigurationException: No suitable
Log
 constructor [Ljava.lang.Class;@1a679b7 for
org.apache.commons.logging.impl.Log4
JLogger
        at
org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogF
actoryImpl.java:432)
        at
org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactory
Impl.java:525)
        ... 12 more
Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Logger
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:1590)
        at java.lang.Class.getConstructor0(Class.java:1762)
        at java.lang.Class.getConstructor(Class.java:1002)
        at
org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogF
actoryImpl.java:429)
        ... 13 more

If I put my log4J in the jakarta../shared/lib or WEB-INF/lib, Tomcat does
startup.
However, Struts fails to initialize giving  an exception as follows:
javax.servlet.ServletException: Error instantiating servlet class
org.apache.struts.action.ActionServlet
 at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:91
2)
...
----- Root Cause -----
java.lang.ExceptionInInitializerError
Caused by: org.apache.commons.logging.LogConfigurationException:
org.apache.commons.logging.LogConfigurationException: No suitable Log
constructor [Ljava.lang.Class;@3a5794 for
org.apache.commons.logging.impl.Log4JLogger
 at
org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.ja
va:532)
Caused by: org.apache.commons.logging.LogConfigurationException: No suitable
Log constructor [Ljava.lang.Class;@3a5794 for
org.apache.commons.logging.impl.Log4JLogger
 at
org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryI
mpl.java:432)
 at
org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.ja
va:525)
 ... 28 more
Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Logger
 at java.lang.Class.getDeclaredConstructors0(Native Method)
 at java.lang.Class.privateGetDeclaredConstructors(Class.java:1590)
 at java.lang.Class.getConstructor0(Class.java:1762)
 at java.lang.Class.getConstructor(Class.java:1002)
 at
org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryI
mpl.java:429)
 ... 29 more


What am I missing?

Thanks!

Mahesh