はFullAjaxExceptionHandler
それを処理できるはずです。具体的な問題は、Facelets のデフォルトのバッファ サイズである 2KB をオーバーフローした比較的大きなページがあり、例外がスローされた時点で応答が既にコミットされているために発生する可能性があります。レスポンスがコミットされると、レスポンスの一部はすでにクライアント側に送信されています。すでに送信されたバイトを取り戻して、エラー ページで新しい応答を提示する方法はありません。ajax を使用しない場合も、まったく同じ問題が発生します。代わりに例外がログに記録され、クライアントは中途半端なページでスタックします。
デフォルトの応答バッファ サイズを、最大の HTML 応答のサイズに合わせて増やすことができます。このようにして、最初のバイトがクライアント側に送信される前に、応答が生成され、サーバーのメモリに完全にバッファリングされます。値としてバイト単位のバッファーサイズを使用して、javax.faces.FACELETS_BUFFER_SIZE
コンテキストパラメーターで設定できます。web.xml
次の例では、64KB に設定しています。
<context-param>
<param-name>javax.faces.FACELETS_BUFFER_SIZE</param-name>
<param-value>65535</param-value>
</context-param>
これを開発/テスト環境でのみ設定して、ビュー側の間違いを見つけ、ライブ環境でデフォルトのバッファ サイズを使用し続けてサーバー メモリを節約できるようにすることをお勧めします。