Webapp找不到位于WEB-INF / lib文件夹中的jar

时间:2010-05-14 08:55:02

标签: java tomcat

在生产Tomcat服务器上,我的webapp找不到位于WEB-INF / lib文件夹中的jar。在发展方面,一切都很好。

堆栈跟踪

javax.servlet.ServletException: Could not initialize class util.HibernateUtil
    web.Engine.service(Engine.java:58)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
    java.security.AccessController.doPrivileged(Native Method)
    javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
    org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
    org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
root cause

java.lang.NoClassDefFoundError: Could not initialize class util.HibernateUtil
    web.Engine.service(Engine.java:31)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
    java.security.AccessController.doPrivileged(Native Method)
    javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
    org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
    org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5 logs.

开发配置
Tomcat 5.5
OS X 10.6
Eclipse

生产配置
Tomcat 5.5
Linux Debian

感谢您的回答!

2 个答案:

答案 0 :(得分:1)

默认情况下,Debian发行版附带的Tomcat具有非常严格的Java安全管理器。我的猜测是你正在使用打包版本并且它禁止某些东西。您发布的跟踪的最后一行中提到的日志中很可能提供“ something ”:

  

注意Apache Tomcat / 5.5日志中提供了根本原因的完整堆栈跟踪。

您必须放宽限制(检查/etc/tomcat5.5/policy.d)或将其关闭。与您的管理员交谈。

答案 1 :(得分:1)

我看到一个非常相似的东西需要来自另一个jar的类,而 jar不在类路径上。

查看Tomcat日志中堆栈跟踪的根本原因。这很可能会揭示出了什么问题。