【问题标题】:Tomcat 7 - java.lang.NoClassDefFoundError: Could not initialize class javax.servlet.http.CookieTomcat 7 - java.lang.NoClassDefFoundError:无法初始化类 javax.servlet.http.Cookie
【发布时间】:2012-02-14 23:34:33
【问题描述】:

我有一个使用 j_security 进行基于表单的身份验证的应用程序。首次部署应用程序(或重新启动 tomcat)时,用户在尝试直接访问受保护的内容(无需登录)时会收到此异常。

GRAVE: Servlet.service() for servlet [default] in context with path [/mycontext]  threw exception [Could not initialize class javax.servlet.http.Cookie] with root cause
    java.lang.NoClassDefFoundError: Could not initialize class javax.servlet.http.Cookie
    at org.apache.catalina.core.ApplicationSessionCookieConfig.createSessionCookie(ApplicationSessionCookieConfig.java:127)
    at org.apache.catalina.connector.Request.doGetSession(Request.java:2875)
    at org.apache.catalina.connector.Request.getSession(Request.java:2307)
    at org.apache.catalina.connector.RequestFacade$GetSessionPrivilegedAction.run(RequestFacade.java:216)
    at org.apache.catalina.connector.RequestFacade$GetSessionPrivilegedAction.run(RequestFacade.java:205)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:894)
    at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:909)
    at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:238)
    at com.mycompany.myfilter.SaasComponentImpl.getTenantId(SaasComponentImpl.java:284)

例外行为是将用户重定向到登录表单,并在用户登录时将他重定向到请求的受保护资源。

但奇怪的是,如果第一个请求发送到重新启动的服务器要求登录表单,这会正常工作!!!似乎在这个tomcat找到并正确加载cookie类之后,所有请求都按预期处理。

为什么tomcat在lib/servlet-api.jar中找不到确定的Cookie类?恕我直言,当这个类第一次被要求加载时没有mmetter......它应该用于任何阀门,servlet,过滤器等......我是对的吗?

PS:在应用从 tomcat 6 迁移之前,这一切正常。

【问题讨论】:

    标签: tomcat tomcat7


    【解决方案1】:

    确保您的应用程序的 WEB-INF/lib 中没有 servlet-api.jar。

    如果你有,它将由两个不同的类加载器加载,并可能导致像你所拥有的那样奇怪的错误消息。

    除此之外,请尝试在全新安装的 tomcat 中运行您的应用程序。

    【讨论】:

      猜你喜欢
      • 2012-10-10
      • 2013-08-08
      • 2020-09-27
      • 2012-08-26
      • 2015-10-29
      • 2017-09-12
      • 2016-07-07
      • 2018-08-01
      相关资源
      最近更新 更多