【问题标题】:JSF default tomcat error pageJSF默认tomcat错误页面
【发布时间】:2012-08-03 07:45:30
【问题描述】:

我想在抛出异常时在 JSF 2.0 (MyFaces) 应用程序中显示默认的 Tomcat 错误页面。

我在 web.xml 中添加了以下几行:

<error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/ErrorHandler</location>
</error-page>
<context-param>
    <param-name>org.apache.myfaces.ERROR_HANDLING</param-name>
    <param-value>false</param-value>
</context-param>

这里是 ErrorHandler servlet:

public class ErrorHandler extends HttpServlet {

protected void doGet(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
        response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
                "Error");
    }
}

但显示的不是默认的 Tomcat 错误页面,而是显示错误代码 500 的空页面。

当我尝试通过 URL 直接访问 ErrorHandler servlet 时,它工作正常:显示 Tomcat 错误页面。

所以我猜是JSF错误处理机制的原因?我做错了什么?

【问题讨论】:

    标签: java jsf servlets myfaces


    【解决方案1】:

    如果要显示应用服务器的默认错误页面,只需从 web.xml 中删除错误页面条目并将上下文 init-parameter javax.faces.PROJECT_STAGE 设置为 Production。

    【讨论】:

      猜你喜欢
      • 2011-02-07
      • 2020-11-06
      • 2012-07-15
      • 1970-01-01
      • 1970-01-01
      • 2014-03-21
      • 1970-01-01
      • 1970-01-01
      • 2014-07-20
      相关资源
      最近更新 更多