You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2003/02/13 18:19:10 UTC

DO NOT REPLY [Bug 17051] New: - LogerFactory NullPointerException/ClassNotFoundException

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17051>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17051

LogerFactory NullPointerException/ClassNotFoundException 

           Summary: LogerFactory NullPointerException/ClassNotFoundException
           Product: Tomcat 4
           Version: 4.1.18
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Catalina
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: hiltenkamp@web.de


There is a Classpath Problem with the LogerFactory when trying to use the JK2
Connector. The Exception occurs on startup 

Either one gets a NullPointerExeption  export JAVA_OPTS="-Xmx64M -Xss512k
-Xbootclasspath/a:/opt/jakarta-tomcat-4.1.18-LE-jdk14/common/lib/commons-logging-api.jar:/opt/jakarta-tomcat-4.1.18-LE-jdk14/server/lib/commons-logging.jar"
andi@ibh03:/opt/jakarta-tomcat-4.1.18-LE-jdk14/bin> catalina.sh run
Using CATALINA_BASE:   /opt/jakarta-tomcat-4.1.18-LE-jdk14
Using CATALINA_HOME:   /opt/jakarta-tomcat-4.1.18-LE-jdk14
Using CATALINA_TMPDIR: /opt/jakarta-tomcat-4.1.18-LE-jdk14/temp
Using JAVA_HOME:       /usr/lib/java
org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException
        at org.apache.commons.logging.LogFactory.newFactory(LogFactory.java:558)
        at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:355)
        at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:409)
        at org.apache.commons.digester.Digester.<init>(Digester.java:345)
        at
org.apache.catalina.startup.Catalina.createStartDigester(Catalina.java: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(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
Caused by: java.lang.NullPointerException
        at org.apache.commons.logging.LogFactory.newFactory(LogFactory.java:543)
        ... 12 more

or if the common-loging*.jar files are not added to the BootClasspath and 
left in their default directories (common/lib resp. server/lib) one gets:
[Loaded org.apache.jk.apr.AprImpl from
/opt/jakarta-tomcat-4.1.18-LE-jdk14/bin/tomcat-jni.jar]
13.02.2003 16:38:45 org.apache.jk.server.JkMain newHandler
SERVE: Can't create apr
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
        at org.apache.jk.apr.AprImpl.<clinit>(AprImpl.java:340)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:140)
        at org.apache.jk.server.JkMain.newHandler(JkMain.java:556)
        at org.apache.jk.server.JkMain.start(JkMain.java:341)
        at org.apache.jk.server.JkCoyoteHandler.start(JkCoyoteHandler.java:169)
        at
org.apache.coyote.tomcat4.CoyoteConnector.start(CoyoteConnector.java:1056)
        at org.apache.catalina.core.StandardService.start(StandardService.java:506)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:2189)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
        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(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)

If one creates a verbose output of what happens in the last case ( the
ClassNotFoundException) one finds the following: 
----
...
[Loaded org.apache.commons.digester.SetRootRule]
[Loaded org.apache.commons.digester.FactoryCreateRule]
[Loaded org.apache.commons.digester.CallParamRule]
[Loaded org.apache.commons.digester.CallMethodRule]
[Loaded org.apache.commons.digester.BeanPropertySetterRule]
[Loaded org.apache.commons.digester.Rules]
[Loaded org.apache.commons.digester.SetNextRule]
[Loaded org.apache.commons.digester.SetPropertiesRule]
[Loaded org.apache.commons.digester.ObjectCreateRule]
[Loaded org.apache.commons.collections.ArrayStack]
[Loaded org.apache.commons.logging.LogFactory]
[Loaded org.apache.commons.logging.LogConfigurationException]
...
Apache Tomcat/4.1.18-LE-jdk14
[Loaded org.apache.catalina.core.StandardEngineMapper]
[Loaded org.apache.catalina.valves.ErrorReportValve]
[Loaded java.io.StringWriter from /usr/local/j2sdk1.4.1_01/jre/lib/rt.jar]
[Loaded sun.reflect.GeneratedConstructorAccessor7]
[Loaded org.apache.catalina.valves.ErrorDispatcherValve]
[Loaded javax.servlet.ServletRequest]
[Loaded javax.servlet.ServletResponse]
[Loaded org.apache.catalina.core.StandardHostMapper]
[Dynamic-linking native method java.io.FileOutputStream.openAppend ... JNI]
[Loaded org.apache.jk.apr.AprImpl from
/opt/jakarta-tomcat-4.1.18-LE-jdk14/bin/tomcat-jni.jar]
13.02.2003 16:38:45 org.apache.jk.server.JkMain newHandler
SERVE: Can't create apr
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
        at org.apache.jk.apr.AprImpl.<clinit>(AprImpl.java:340)
        at java.lang.Class.forName0(Native Method)
...
----

The Class LogFactory was allready found when used by the Digester if it comes to
loading the AprImpl class suddenly the LogerFactroy can't be found any longer.

The used java version is: java full version "1.4.1_01-b01"

Operating System: Linux version 2.4.10-4GB (root@ibh03) (gcc version 2.95.3
20010315 (SuSE)) #1 Sam Feb 16 15:05:16 CET 2002

Something similar happens when trying to use the current released version
of log4j. Putting log4j.jar into the common/lib directory gives a
NullPointerException putting it into $JAVA_HOME/jre/lib/ext gives the
ClassNotFoundException from above.

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org