You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by frank <fr...@cloud.com> on 2010/12/07 18:59:57 UTC
class not found in tomcat's JARs (in $CATALINA_HOME/lib)
Hi Experts:
I have read "class not found" in FAQ and "class loader howto" of
tomcat6, unfortunately, they don't resolve my problem.
I set CATALINA_BASE and CATALINA_HOME to my directory like:
CATALINA_BASE=/usr/share/mydir
CATALINA_HOME=/usr/share/mydir
then link subdirs (conf/, bin/ ...)of tomcat6 to $CATALINA_HOME,
the "lib/" points to /usr/share/tomcat6/lib. IMO,
tomcat6-servlet-2.5-api.jar, tomcat6-jsp-2.1-api-6.0.26.jar,
tomcat6-el-2.1-api-6.0.26.jar should be automatically be found since
they are located at $CATALINA_HOME/lib/. In fact this doesn't work, I
got errors (see paste at bottom). However, if I added full path of these
JARs to classpath, things worked. I am puzzled, why common class loader
doesn't get these files? thank you.
*type* Exception report
*message*
*description* _The server encountered an internal error () that
prevented it from fulfilling this request._
*exception*
org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagSupport
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:491)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
*root cause*
javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagSupport
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.index_jsp._jspService(index_jsp.java:1349)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
*root cause*
java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagSupport
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:634)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
java.net.URLClassLoader.access$000(URLClassLoader.java:73)
java.net.URLClassLoader$1.run(URLClassLoader.java:212)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:205)
java.lang.ClassLoader.loadClass(ClassLoader.java:321)
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
java.lang.ClassLoader.loadClass(ClassLoader.java:266)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:634)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
java.net.URLClassLoader.access$000(URLClassLoader.java:73)
java.net.URLClassLoader$1.run(URLClassLoader.java:212)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:205)
java.lang.ClassLoader.loadClass(ClassLoader.java:321)
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
java.lang.ClassLoader.loadClass(ClassLoader.java:266)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1431)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
org.apache.jsp.index_jsp._jspx_meth_fmt_005fsetBundle_005f0(index_jsp.java:1361)
org.apache.jsp.index_jsp._jspService(index_jsp.java:61)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
*root cause*
java.lang.ClassNotFoundException: javax.servlet.jsp.tagext.TagSupport
java.net.URLClassLoader$1.run(URLClassLoader.java:217)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:205)
java.lang.ClassLoader.loadClass(ClassLoader.java:321)
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
java.lang.ClassLoader.loadClass(ClassLoader.java:266)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:634)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
java.net.URLClassLoader.access$000(URLClassLoader.java:73)
java.net.URLClassLoader$1.run(URLClassLoader.java:212)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:205)
java.lang.ClassLoader.loadClass(ClassLoader.java:321)
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
java.lang.ClassLoader.loadClass(ClassLoader.java:266)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:634)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
java.net.URLClassLoader.access$000(URLClassLoader.java:73)
java.net.URLClassLoader$1.run(URLClassLoader.java:212)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:205)
java.lang.ClassLoader.loadClass(ClassLoader.java:321)
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
java.lang.ClassLoader.loadClass(ClassLoader.java:266)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1431)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
org.apache.jsp.index_jsp._jspx_meth_fmt_005fsetBundle_005f0(index_jsp.java:1361)
org.apache.jsp.index_jsp._jspService(index_jsp.java:61)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
*note* _The full stack trace of the root cause is available in the
Apache Tomcat/6.0.26 logs._
Re: class not found in tomcat's JARs (in $CATALINA_HOME/lib)
Posted by Pid <pi...@pidster.com>.
On 12/7/10 5:59 PM, frank wrote:
>
> Hi Experts:
> I have read "class not found" in FAQ and "class loader howto" of
> tomcat6, unfortunately, they don't resolve my problem.
> I set CATALINA_BASE and CATALINA_HOME to my directory like:
>
> CATALINA_BASE=/usr/share/mydir
> CATALINA_HOME=/usr/share/mydir
>
> then link subdirs (conf/, bin/ ...)of tomcat6 to $CATALINA_HOME, the
> "lib/" points to /usr/share/tomcat6/lib. IMO,
> tomcat6-servlet-2.5-api.jar, tomcat6-jsp-2.1-api-6.0.26.jar,
> tomcat6-el-2.1-api-6.0.26.jar should be automatically be found since
> they are located at $CATALINA_HOME/lib/. In fact this doesn't work, I
> got errors (see paste at bottom). However, if I added full path of these
> JARs to classpath, things worked. I am puzzled, why common class loader
> doesn't get these files? thank you.
These are not jars shipped with ASF released Tomcat.
I suspect you're using a repackaged version; I'm not sure how much
impact that will have, but thenhaven't indicated how these new
directories are referenced during an attempt to start a Tomcat instance.
p
> *type* Exception report
>
> *message*
>
> *description* _The server encountered an internal error () that
> prevented it from fulfilling this request._
>
> *exception*
>
> org.apache.jasper.JasperException: javax.servlet.ServletException:
> java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagSupport
> org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:491)
>
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)
>
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
>
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>
> *root cause*
>
> javax.servlet.ServletException: java.lang.NoClassDefFoundError:
> javax/servlet/jsp/tagext/TagSupport
> org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
>
> org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
>
> org.apache.jsp.index_jsp._jspService(index_jsp.java:1349)
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
>
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
>
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>
> *root cause*
>
> java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagSupport
> java.lang.ClassLoader.defineClass1(Native Method)
> java.lang.ClassLoader.defineClass(ClassLoader.java:634)
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
> java.net.URLClassLoader.access$000(URLClassLoader.java:73)
> java.net.URLClassLoader$1.run(URLClassLoader.java:212)
> java.security.AccessController.doPrivileged(Native Method)
> java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> java.lang.ClassLoader.loadClass(ClassLoader.java:321)
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
> java.lang.ClassLoader.loadClass(ClassLoader.java:266)
> java.lang.ClassLoader.defineClass1(Native Method)
> java.lang.ClassLoader.defineClass(ClassLoader.java:634)
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
> java.net.URLClassLoader.access$000(URLClassLoader.java:73)
> java.net.URLClassLoader$1.run(URLClassLoader.java:212)
> java.security.AccessController.doPrivileged(Native Method)
> java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> java.lang.ClassLoader.loadClass(ClassLoader.java:321)
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
> java.lang.ClassLoader.loadClass(ClassLoader.java:266)
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1431)
>
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
>
> org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128)
> org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
> org.apache.jsp.index_jsp._jspx_meth_fmt_005fsetBundle_005f0(index_jsp.java:1361)
>
> org.apache.jsp.index_jsp._jspService(index_jsp.java:61)
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
>
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
>
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>
> *root cause*
>
> java.lang.ClassNotFoundException: javax.servlet.jsp.tagext.TagSupport
> java.net.URLClassLoader$1.run(URLClassLoader.java:217)
> java.security.AccessController.doPrivileged(Native Method)
> java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> java.lang.ClassLoader.loadClass(ClassLoader.java:321)
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
> java.lang.ClassLoader.loadClass(ClassLoader.java:266)
> java.lang.ClassLoader.defineClass1(Native Method)
> java.lang.ClassLoader.defineClass(ClassLoader.java:634)
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
> java.net.URLClassLoader.access$000(URLClassLoader.java:73)
> java.net.URLClassLoader$1.run(URLClassLoader.java:212)
> java.security.AccessController.doPrivileged(Native Method)
> java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> java.lang.ClassLoader.loadClass(ClassLoader.java:321)
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
> java.lang.ClassLoader.loadClass(ClassLoader.java:266)
> java.lang.ClassLoader.defineClass1(Native Method)
> java.lang.ClassLoader.defineClass(ClassLoader.java:634)
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
> java.net.URLClassLoader.access$000(URLClassLoader.java:73)
> java.net.URLClassLoader$1.run(URLClassLoader.java:212)
> java.security.AccessController.doPrivileged(Native Method)
> java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> java.lang.ClassLoader.loadClass(ClassLoader.java:321)
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
> java.lang.ClassLoader.loadClass(ClassLoader.java:266)
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1431)
>
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
>
> org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128)
> org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
> org.apache.jsp.index_jsp._jspx_meth_fmt_005fsetBundle_005f0(index_jsp.java:1361)
>
> org.apache.jsp.index_jsp._jspService(index_jsp.java:61)
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
>
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
>
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>
> *note* _The full stack trace of the root cause is available in the
> Apache Tomcat/6.0.26 logs._
>
>
>
Re: class not found in tomcat's JARs (in $CATALINA_HOME/lib)
Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Frank,
On 12/7/2010 12:59 PM, frank wrote:
> I set CATALINA_BASE and CATALINA_HOME to my directory like:
>
> CATALINA_BASE=/usr/share/mydir
> CATALINA_HOME=/usr/share/mydir
Why did you set either of these environment variables? IF you aren't
running multiple instances of Tomcat from a single base install, you
never need to set CATALINA_BASE and Tomcata auto-detects CATALINA_HOME
when you run any of the startup scripts.
> then link subdirs (conf/, bin/ ...)of tomcat6 to $CATALINA_HOME
Okay, what is "tomcat6" and why did you have to link directories at all?
Aren't those directories already there?
>, the
> "lib/" points to /usr/share/tomcat6/lib. IMO,
> tomcat6-servlet-2.5-api.jar, tomcat6-jsp-2.1-api-6.0.26.jar,
> tomcat6-el-2.1-api-6.0.26.jar should be automatically be found since
> they are located at $CATALINA_HOME/lib/. In fact this doesn't work, I
> got errors (see paste at bottom). However, if I added full path of these
> JARs to classpath, things worked. I am puzzled, why common class loader
> doesn't get these files? thank you.
I think what you want is:
$ export CATALINA_BASE=/usr/share/mydir
$ vi ${CATALINA_BASE}/conf/server.xml
$ mkdir ${CATALINA_BASE}/webapps
$ cp mywar.war ${CATALINA_BASE}/webapps/
$ export CATALINA_HOME=/usr/share/tomcat6
$ ${CATALINA_HOME}/bin/startup.sh
That should be all you need.
As Pid mentions, it looks like you're using a re-packaged version of
Tomcat. You might want to consider reading the documentation for that
package maintainer's version of Tomcat to see how you are supposed to
run multiple instances.
- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAk0BPywACgkQ9CaO5/Lv0PAJwwCcCP+b7NCANSNgBQUUGdRYdOma
VBEAnjjKmH1n4OyHgDL8XdryPpcMyHnM
=SG61
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: class not found in tomcat's JARs (in $CATALINA_HOME/lib)
Posted by Mark Eggers <it...@yahoo.com>.
Out of curiosity, couldn't you use the information in RUNNING.txt under
"Advanced Configuration - Multiple Tomcat Instances" to meet your requirements?
. . . just a thought.
/mde/
----- Original Message ----
From: frank <fr...@cloud.com>
Hi Experts:
I have read "class not found" in FAQ and "class loader howto" of tomcat6,
unfortunately, they don't resolve my problem.
I set CATALINA_BASE and CATALINA_HOME to my directory like:
CATALINA_BASE=/usr/share/mydir
CATALINA_HOME=/usr/share/mydir
then link subdirs (conf/, bin/ ...)of tomcat6 to $CATALINA_HOME, the "lib/"
points to /usr/share/tomcat6/lib. IMO, tomcat6-servlet-2.5-api.jar,
tomcat6-jsp-2.1-api-6.0.26.jar, tomcat6-el-2.1-api-6.0.26.jar should be
automatically be found since they are located at $CATALINA_HOME/lib/. In fact
this doesn't work, I got errors (see paste at bottom). However, if I added full
path of these JARs to classpath, things worked. I am puzzled, why common class
loader doesn't get these files? thank you.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org