JSF默认的tomcat错误页面

时间:2012-08-06 10:32:38

标签: java jsf servlets myfaces

我想在抛出异常时在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错误处理机制?我做错了什么?

1 个答案:

答案 0 :(得分:0)

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