Как поймать FacesFileNotFoundException

Несмотря на то, что я сделал то, что написано на этой странице, я все еще не смог решить эту проблему. проблема в том, что изменения в файле web.xml не влияют на работу приложения. Кстати, я использую ExceptionHandler (с использованием org.jboss.solder.exception.control.HandlesExceptions.HandlesExceptions аннотации). Я попытался добавить метод в свой класс ExceptionHandler, но не смог импортировать FacesFileNotFoundException. Итак, вот мой вопрос, хотя приложение выдает исключение FacesFileNotFoundException, почему я не могу импортировать класс исключений FacesFileNotFoundException на странице?

2 ответа

Вы должны правильно добавить страницу ошибки в web.xml, вы должны поместить полное исключение и целевое местоположение, куда вы перенаправляете, когда выбрасывается исключение, - это html, а не xhtml, это очень важно, это должно быть что-то как это

<error-page>
    <exception-type>com.sun.faces.context.FacesFileNotFoundException</exception-type>
    <location>/pagenotfound.html</location>
</error-page>

Чего я не знаю, так это как сделать исключение, не отображаемое на консоли, но оно работает нормально

Я попытался добавить метод в свой класс ExceptionHandler, но не смог импортировать FacesFileNotFoundException. Итак, вот мой вопрос, хотя приложение выдает исключение FacesFileNotFoundException, почему я не могу импортировать класс исключений FacesFileNotFoundException на странице?

com.sun.* Пакет специфичен для реализации JSF Mojarra. Очевидно, у вас есть JAR-файл JSF API в classpath времени компиляции, но нет JAR-файла реализации JSF.

Это не должно быть большой проблемой. Вы должны стараться не делать свое веб-приложение зависимым от конкретной реализации JSF. Вы должны попытаться избежать импорта / ссылки на классы, специфичные для реализации. FacesFileNotFoundException простирается от java.io.FileNotFoundException, поэтому я рекомендую импортировать это вместо. Не забудьте развернуть FacesException, Некоторые подсказки см. Также в исходном коде OmniFaces. FullAjaxExceptionHandler а также FacesExceptionFilter,

Если вам абсолютно необходимо импортировать специфическую для Мохарры FacesFileNotFoundException и вы хотите, чтобы ваш код компилировался, затем вы должны добавить JAR-файл JSF-реализации в classpath времени компиляции. Как именно это сделать, зависит от используемой IDE. В Eclipse вы должны ссылаться на файл JAR реализации JSF из сервера приложений в пути сборки.

Обратите внимание, что JSF ExceptionHandler по умолчанию ничего не делает с объявлениями об ошибках в web.xml,

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