Bug#547202: Tomcat6 Debian Squeeze fails to find classes in provided Jars in WARs

Brian Milnes briangmilnes at gmail.com
Thu Sep 17 17:45:59 UTC 2009


Package: tomcat6
Version: 6.0.20-5
Folks,

 Tomcat6 is failing to find some classes for us in valid WAR files on
Squeeze. This has been extensively tested
and works beautifully for us on older revisions of java/tomcat6 (squeeze)
packages back installed on Lenny
and on the current tomcat6 on Ubuntu.

Potentially useful problem information:

I have also run this with both the openjdk and sun java 6, so it's Tomcat's
problem with a very high likelihood.

 I have compiled our JARs with sun 1.5 sun 6 and openjdk, it does not matter
which.

 I have all three installed (as I actually need this in dev/production) but
this also occurs with
just the openjdk.

 Running Jar files have been copied from UBUNTU to Debian to demonstrate
that this is really a debian not a build
problem.

 And of course, it's CRITICAL.

 I have multiple javas installed (due to some packages requiring 1.5 and

You'll see traces like (but I can not provide the jar, sorry):
HTTP Status 500 -
------------------------------

*type* Exception report

*message*

*description* *The server encountered an internal error () that prevented it
from fulfilling this request.*

*exception*

javax.servlet.ServletException: com/noelios/restlet/ClientHelper
	org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:324)
	org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
	org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:115)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
	org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
	org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
	org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
	org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
	java.lang.Thread.run(Thread.java:636)

*root cause*

java.lang.NoClassDefFoundError: com/noelios/restlet/ClientHelper
	com.noelios.restlet.ext.servlet.ServerServlet.createComponent(ServerServlet.java:375)
	com.noelios.restlet.ext.servlet.ServerServlet.getComponent(ServerServlet.java:740)
	com.noelios.restlet.ext.servlet.ServerServlet.init(ServerServlet.java:819)
	javax.servlet.GenericServlet.init(GenericServlet.java:212)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:616)
	org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269)
	java.security.AccessController.doPrivileged(Native Method)
	javax.security.auth.Subject.doAsPrivileged(Subject.java:537)
	org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:301)
	org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
	org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:115)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
	org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
	org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
	org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
	org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
	java.lang.Thread.run(Thread.java:636)

*root cause*

java.lang.ClassNotFoundException: com.noelios.restlet.ClientHelper
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
	com.noelios.restlet.ext.servlet.ServerServlet.createComponent(ServerServlet.java:375)
	com.noelios.restlet.ext.servlet.ServerServlet.getComponent(ServerServlet.java:740)
	com.noelios.restlet.ext.servlet.ServerServlet.init(ServerServlet.java:819)
	javax.servlet.GenericServlet.init(GenericServlet.java:212)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:616)
	org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269)
	java.security.AccessController.doPrivileged(Native Method)
	javax.security.auth.Subject.doAsPrivileged(Subject.java:537)
	org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:301)
	org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
	org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:115)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
	org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
	org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
	org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
	org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
	java.lang.Thread.run(Thread.java:636)

*note* *The full stack trace of the root cause is available in the Apache
Tomcat/6.0.20 logs.*


On Squeeze where it fails:

Amazon EC2 Debian testing squeeze AMI built by Eric Hammond
http://alestic.com  http://ec2debian-group.notlong.com
amazon ami ami-fb46a792dpkg-query --list "tomcat*" | grep -v none
Desired=Unknown/Install/Remove/Purge/Hold
|
Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
||/ Name                               Version
Description
+++-==================================-==================================-====================================================================================
ii  tomcat6                            6.0.20-5
Servlet and JSP engine
ii  tomcat6-admin                      6.0.20-5
Servlet and JSP engine -- admin web applications
ii  tomcat6-common                     6.0.20-5
Servlet and JSP engine -- common files
ii  tomcat6-user                       6.0.20-5
Servlet and JSP engine -- tools to create user instances


ip-10-245-193-173:~# dpkg-query --list "*java*" | grep -v none
Desired=Unknown/Install/Remove/Purge/Hold
|
Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
||/ Name                               Version
Description
+++-==================================-==================================-====================================================================================
ii  ca-certificates-java               20090629
Common CA certificates (JKS keystore)
ii  java-common                        0.33
Base of all Java packages
ii  libaccess-bridge-java              1.26.2-1
Java Access Bridge for GNOME
ii  libaccess-bridge-java-jni          1.26.2-1
Java Access Bridge for GNOME (jni bindings)
ii  libcommons-collections-java        2.1.1-8                            A
set of abstract data type interfaces and implementations
ii  libcommons-daemon-java             1.0.2~svn20061127-9
library to launch Java applications as daemons
ii  libcommons-dbcp-java               1.3~svn803474-1
Database Connection Pooling Services
ii  libcommons-pool-java               1.5.2-1
pooling implementation for Java objects
ii  libecj-java                        3.5+20090820-1
Eclipse Java compiler (library)
ii  libhamcrest-java                   1.1-2
library of matchers for building test expressions
ii  libjaxp1.3-java                    1.3.04-5
Java XML parser and transformer APIs (DOM, SAX, JAXP, TrAX)
ii  libjaxp1.3-java-gcj                1.3.04-5
Java XML parser and transformer APIs (DOM, SAX, JAXP, TrAX)
ii  libjline-java                      0.9.94-5
Java library for handling console input
ii  libservlet2.5-java                 6.0.20-5
Servlet 2.5 and JSP 2.1 Java API classes
ii  libtomcat6-java                    6.0.20-5
Servlet and JSP engine -- core libraries
ii  libxerces2-java                    2.9.1-4
Validating XML parser for Java with DOM level 3 support
ii  libxerces2-java-gcj                2.9.1-4
Validating XML parser for Java with DOM level 3 support (native code)
ii  tzdata-java                        2009l-1
time zone and daylight-saving time data for use by java runtimes
ip-10-245-193-173:~# dpkg-query --list "*jdk*" | grep -v none
Desired=Unknown/Install/Remove/Purge/Hold
|
Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
||/ Name                               Version
Description
+++-==================================-==================================-====================================================================================
ii  openjdk-6-jdk                      6b16-4
OpenJDK Development Kit (JDK)
ii  openjdk-6-jre                      6b16-4
OpenJDK Java runtime, using Hotspot JIT
ii  openjdk-6-jre-headless             6b16-4
OpenJDK Java runtime, using Hotspot JIT (headless)
ii  openjdk-6-jre-lib                  6b16-4
OpenJDK Java runtime (architecture independent libraries)
ip-10-245-193-173:~# dpkg-query --list "*jre*" | grep -v none
Desired=Unknown/Install/Remove/Purge/Hold
|
Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
||/ Name                               Version
Description
+++-==================================-==================================-====================================================================================
ii  icedtea-6-jre-cacao                6b16-4
Alternatve JVM for OpenJDK, using Cacao
ii  openjdk-6-jre                      6b16-4
OpenJDK Java runtime, using Hotspot JIT
ii  openjdk-6-jre-headless             6b16-4
OpenJDK Java runtime, using Hotspot JIT (headless)
ii  openjdk-6-jre-lib                  6b16-4
OpenJDK Java runtime (architecture independent libraries)

On Ubuntu where it runs nicely:


  dpkg-query --list "*tomcat*" | grep -v none
Desired=Unknown/Install/Remove/Purge/Hold
|
Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
||/ Name                                Version
Description
+++-===================================-===================================-======================================================================================
ii  libtomcat6-java                     6.0.18-0ubuntu6.1
Servlet and JSP engine -- core libraries
ii  tomcat6                             6.0.18-0ubuntu6.1
Servlet and JSP engine
ii  tomcat6-admin                       6.0.18-0ubuntu6.1
Servlet and JSP engine -- admin web applications
ii  tomcat6-common                      6.0.18-0ubuntu6.1
Servlet and JSP engine -- common files
ii  tomcat6-user                        6.0.18-0ubuntu6.1
Servlet and JSP engine -- tools to create user instances
root at ip-10-242-202-34:~# dpkg-query --list "*java*" | grep -v none
Desired=Unknown/Install/Remove/Purge/Hold
|
Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
||/ Name                                Version
Description
+++-===================================-===================================-======================================================================================
ii  ca-certificates-java                20081028
Common CA certificates (JKS keystore)
ii  java-common                         0.30ubuntu4
Base of all Java packages
ii  libaccess-bridge-java               1.24.0-0ubuntu2
Java Access Bridge for GNOME
ii  libcommons-collections-java         2.1.1-8ubuntu1
A set of abstract data type interfaces and implementations
ii  libcommons-daemon-java              1.0.2~svn20061127-9ubuntu2
library to launch Java applications as daemons
ii  libcommons-dbcp-java                1.2.2-1ubuntu1
Database Connection Pooling Services
ii  libcommons-pool-java                1.4-0ubuntu1
pooling implementation for Java objects
ii  libecj-java                         3.4.2-0ubuntu1
Eclipse Java compiler (library)
ii  libecj-java-gcj                     3.4.2-0ubuntu1
Eclipse Java compiler (native library)
ii  libjaxp1.3-java                     1.3.04-3ubuntu2
Java XML parser and transformer APIs (DOM, SAX, JAXP, TrAX)
ii  libjaxp1.3-java-gcj                 1.3.04-3ubuntu2
Java XML parser and transformer APIs (DOM, SAX, JAXP, TrAX)
ii  libservlet2.5-java                  6.0.18-0ubuntu6.1
Servlet 2.5 and JSP 2.1 Java API classes
ii  libtomcat6-java                     6.0.18-0ubuntu6.1
Servlet and JSP engine -- core libraries
ii  libxerces2-java                     2.9.1-2ubuntu2
Validating XML parser for Java with DOM level 3 support
ii  libxerces2-java-gcj                 2.9.1-2ubuntu2
Validating XML parser for Java with DOM level 3 support (native code)
ii  sun-java5-bin                       1.5.0-19-0ubuntu0.9.04
Sun Java(TM) Runtime Environment (JRE) 5.0 (architecture dependent files)
ii  sun-java5-demo                      1.5.0-19-0ubuntu0.9.04
Sun Java(TM) Development Kit (JDK) 5.0 demos and examples
ii  sun-java5-jdk                       1.5.0-19-0ubuntu0.9.04
Sun Java(TM) Development Kit (JDK) 5.0
ii  sun-java5-jre                       1.5.0-19-0ubuntu0.9.04
Sun Java(TM) Runtime Environment (JRE) 5.0 (architecture independent files)
ii  sun-java6-bin                       6-16-0ubuntu1.9.04
Sun Java(TM) Runtime Environment (JRE) 6 (architecture dependent files)
ii  sun-java6-jdk                       6-16-0ubuntu1.9.04
Sun Java(TM) Development Kit (JDK) 6
ii  sun-java6-jre                       6-16-0ubuntu1.9.04
Sun Java(TM) Runtime Environment (JRE) 6 (architecture independent files)
ii  tzdata-java                         2009m-0ubuntu0.9.04
time zone and daylight-saving time data for use by java runtimes
root at ip-10-242-202-34:~# dpkg-query --list "*jdk*" | grep -v none
Desired=Unknown/Install/Remove/Purge/Hold
|
Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
||/ Name                                Version
Description
+++-===================================-===================================-======================================================================================
ii  openjdk-6-jdk                       6b14-1.4.1-0ubuntu11
OpenJDK Development Kit (JDK)
ii  openjdk-6-jre                       6b14-1.4.1-0ubuntu11
OpenJDK Java runtime, using Hotspot JIT
ii  openjdk-6-jre-headless              6b14-1.4.1-0ubuntu11
OpenJDK Java runtime, using Hotspot JIT (headless)
ii  openjdk-6-jre-lib                   6b14-1.4.1-0ubuntu11
OpenJDK Java runtime (architecture independent libraries)
ii  sun-java5-jdk                       1.5.0-19-0ubuntu0.9.04
Sun Java(TM) Development Kit (JDK) 5.0
ii  sun-java6-jdk                       6-16-0ubuntu1.9.04
Sun Java(TM) Development Kit (JDK) 6
root at ip-10-242-202-34:~# dpkg-query --list "*jre*" | grep -v none
Desired=Unknown/Install/Remove/Purge/Hold
|
Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
||/ Name                                Version
Description
+++-===================================-===================================-======================================================================================
ii  icedtea-6-jre-cacao                 6b14-1.4.1-0ubuntu11
Alternatve JVM for OpenJDK, using Cacao
ii  openjdk-6-jre                       6b14-1.4.1-0ubuntu11
OpenJDK Java runtime, using Hotspot JIT
ii  openjdk-6-jre-headless              6b14-1.4.1-0ubuntu11
OpenJDK Java runtime, using Hotspot JIT (headless)
ii  openjdk-6-jre-lib                   6b14-1.4.1-0ubuntu11
OpenJDK Java runtime (architecture independent libraries)
ii  sun-java5-jre                       1.5.0-19-0ubuntu0.9.04
Sun Java(TM) Runtime Environment (JRE) 5.0 (architecture independent files)
ii  sun-java6-jre                       6-16-0ubuntu1.9.04
Sun Java(TM) Runtime Environment (JRE) 6 (architecture independent files)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-java-maintainers/attachments/20090917/9bd738ff/attachment-0001.htm>


More information about the pkg-java-maintainers mailing list