如何捕捉FacesFileNotFoundException?
问题描述:
我怎样才能赶上如何捕捉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>
答
你需要指定FQN(完全合格的名称),而不是N作为异常类型。
<exception-type>com.sun.faces.context.FacesFileNotFoundException</exception-type>
另外,如果您已经碰巧使用OmniFaces,注册其FacesExceptionFilter
然后FacesFileNotFoundException
将被处理为404
我以前也试过,但并不能帮助。 – 2011-03-07 15:41:23
究竟发生了什么呢? – BalusC 2011-03-07 15:44:54
输出如下: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