Как отловить исключение FacesFileNotFoundException?

Как я могу поймать

com.sun.faces.context.FacesFileNotFoundException

в веб-приложении Java EE?

Я попробовал добавить следующие строки в мой файл 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>

1 ответ

Решение

Вам нужно указать FQN (полное имя), а не просто N в качестве типа исключения.

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

В качестве альтернативы, если вы уже используете OmniFaces, зарегистрируйте его FacesExceptionFilter а затем FacesFileNotFoundException будет обработан как 404.

Другие вопросы по тегам