FullAjaxExceptionHandler
должен быть в состоянии справиться с этим. Ваша конкретная проблема, вероятно, вызвана тем, что у вас есть относительно большая страница, которая переполняет размер буфера по умолчанию Facelets размером 2 КБ, и, таким образом, ответ уже совершен в точке, где было выбрано исключение. Когда ответ завершен, часть ответа уже отправлена на клиентскую сторону. Существует , а не, чтобы вернуть уже отправленные байты и представить новый ответ со страницей ошибок. У вас была бы такая же проблема, если не использовать ajax. Вместо этого исключение будет регистрироваться, и клиент застрянет с помощью полуобработанной страницы.
Возможно, вы захотите увеличить размер буфера ответа по умолчанию до размера вашего наибольшего ответа HTML. Таким образом, ответ будет сгенерирован и полностью буферизирован в памяти сервера до того, как первый байт будет отправлен на клиентскую сторону. Вы можете установить его в параметре контекста javax.faces.FACELETS_BUFFER_SIZE
в web.xml
с размером буфера в байтах как значение. Следующий пример устанавливает его в 64 КБ.
<context-param>
<param-name>javax.faces.FACELETS_BUFFER_SIZE</param-name>
<param-value>65535</param-value>
</context-param>
Вы можете установить это в среде разработки/тестирования только так, что любые ошибки в стороне зрения могут быть замечены и живая среда может продолжать использовать размер буфера по умолчанию для сохранения памяти сервера.
Как ни странно, я вижу исключение в журнале сервера, прежде чем запускает обработчик исключений. За другими исключениями этого не происходит. Поэтому я вижу «PropertyNotFoundException» дважды, один раз перед обработчиком исключений, а затем обработчик исключений регистрирует его с помощью этой строки 'context.getExternalContext(). Log (String.format (LOG_EXCEPTION_OCCURRED, errorPageLocation), исключение);' Также я не знаю, t см. страницу с половиной выпечки, я просто получаю фон приложения без меню (но загружаются все ресурсы JSF (* .css, * .js)). Полезно ли упомянуть, что это происходит с MyFaces и IBM WAS8? – jonnie119
Это ** ** ** страница с полминутой. Rightclick и * View Source * в браузере. Полученный ответ HTML является неполным, поскольку он был прерван из-за этого исключения. – BalusC
Я развернул тестовое приложение на JBoss и переключился между Mojarra и MyFaces; оба отлично работали, и обработчик исключений справился с этим отлично! Однако увеличение размера буфера не помогло в Websphere AS. Таким образом, эта проблема скорее является настройкой в нашем приложении или общей настройкой в WAS8, я еще не знаю. Я отправлю дальнейшие выводы – jonnie119