【发布时间】:2011-10-02 08:05:08
【问题描述】:
我有一个未由指定的 web.xml 错误页面处理的未经检查的异常。我的目录设置如下:
/index.jsp
/error.jsp
/WEB-INF/web.xml
/此处的其他页面和目录
我在 web.xml 中指定了以下内容:
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/error.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
但是,当我通过错误的对象创建故意在我的登录 Servlet 中抛出 IllegalArgumentException 时,应用程序只会吃掉错误并将其记录在 Tomcat 6.0 日志中。该页面没有被重定向到 error.jsp 页面。
我做错了什么?如果您需要更多信息来帮助,请告诉我。以下是来自 Tomcat 6.0 日志的错误信息:
严重:Servlet.service() 用于 servlet AccountSignIn 抛出异常 java.lang.IllegalArgumentException: int id 无效 FindMeInfo.getInstance(), id: -1 在 com.blank.groupandpal.FindMeInfo.getInstance(FindMeInfo.java:15) 在 com.blank.accounts.servs.AccountSignInServlet.processRequest(AccountSignInServlet.java:107) 在 com.blank.accounts.servs.AccountSignInServlet.doPost(AccountSignInServlet.java:164) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 com.blank.filters.SessionAuthFilter.doFilter(SessionAuthFilter.java:79) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 com.blank.filters.IPControlFilter.doFilter(IPControlFilter.java:97) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在 ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:158) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 在 org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859) 在 org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:574) 在 org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1527) 在 java.lang.Thread.run(Thread.java:595)
谢谢。
【问题讨论】:
-
你试过 java.lang.Exception 吗?
-
是的,我尝试了 java.lang.Exception 以及 javax.servlet.ServletException。我尝试了所有这些单独以及组合,但错误仍然没有冒泡到 web.xml 定义的错误页面。
标签: java servlets servlet-filters web.xml