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