如何捕获FacesFileNotFoundException?

Ben*_*uer 3 jsf exception try-catch filenotfoundexception java-ee

我怎么能抓到一个

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>
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 6

您需要指定FQN(完全限定名称),而不仅仅是N作为异常类型.

<exception-type>com.sun.faces.context.FacesFileNotFoundException</exception-type>
Run Code Online (Sandbox Code Playgroud)

或者,如果您已经碰巧使用OmniFaces,请注册它FacesExceptionFilter,然后FacesFileNotFoundException将其作为404处理.

  • 改为使用简单的JSP/HTML页面并重试. (2认同)