2011-03-07 109 views
3

我怎樣才能趕上如何捕捉FacesFileNotFoundException?

com.sun.faces.context.FacesFileNotFoundException

在Java EE Web應用程序?

我在我的web.xml文件中加入以下幾行嘗試過,但我沒有成功:

... 
    <error-page> 
    <error-code>404</error-code> 
    <location>/404.jsf</location> 
    </error-page> 
    <error-page> 
    <error-code>500</error-code> 
    <location>/404.jsf</location> 
    </error-page> 
    <error-page> 
    <exception-type>FacesFileNotFoundException</exception-type> 
    <location>/404.jsf</location> 
    </error-page> 
    <error-page> 
    <exception-type>FileNotFoundException</exception-type> 
    <location>/404.jsf</location> 
    </error-page> 
    <error-page> 
    <exception-type>FailingHttpStatusCodeException</exception-type> 
    <location>/404.jsf</location> 
    </error-page> 
</web-app> 

回答

6

你需要指定FQN(完全合格的名稱),而不是N作爲異常類型。

<exception-type>com.sun.faces.context.FacesFileNotFoundException</exception-type> 

另外,如果您已經碰巧使用OmniFaces,註冊其FacesExceptionFilter然後FacesFileNotFoundException將被處理爲404

+0

我以前也試過,但並不能幫助。 – 2011-03-07 15:41:23

+0

究竟發生了什麼呢? – BalusC 2011-03-07 15:44:54

+0

輸出如下:1. StandardWrapperValve [Faces Servlet]:PWC1406:servlet的Servlet.service()Faces Servlet拋出異常 com.sun.faces.context.FacesFileNotFoundException 2. PWC1231:Servlet.service()for servlet Faces Servlet引發異常3. [email protected]:異常處理ErrorPage [exceptionType = com.sun.faces.context.FacesFileNotFoundException,location =/404.jsf] javax.servlet.ServletException:上下文已經存在在javax.faces.webapp.FacesServlet.service中激活(FacesServlet.java:422) – 2011-03-08 01:16:05