我有一個應用程序使用j_security進行基於表單的身份驗證。當應用程序第一次部署時(或者tomcat重新啓動時),用戶在嘗試直接訪問受保護的內容時(無需登錄)會得到此異常。Tomcat 7 - java.lang.NoClassDefFoundError:無法初始化類javax.servlet.http.Cookie
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
爲什麼downvote?即使現在我確信這是需要照顧的。 –