2012-08-06 95 views
3

我想在引发异常时在JSF 2.0(MyFaces)应用程序中显示默认的Tomcat错误页面。JSF默认的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.

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

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

回答

0

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