2012-08-06 117 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。