web.xmlでエラーページを定義しました。
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.jsp</location>
</error-page>
そのエラーページには、作成したカスタムタグがあります。このタグのタグハンドラーは、発生したエラーのスタックトレースを電子メールで送信します。ほとんどの場合、これはうまく機能します。
それがうまく機能しないのは、エラーが発生したときに出力がすでにクライアントに送信され始めている場合です。その場合、次のようになります。
SEVERE: Exception Processing ErrorPage[exceptionType=java.lang.Exception, location=/error.jsp]
java.lang.IllegalStateException
このエラーは、出力がすでに開始された後、リクエストをエラーページにリダイレクトできないために発生すると思います。私が使用した回避策は、特に大きなJSPページのバッファサイズを増やすことです。しかし、私は既存のアプリケーションに適用できる汎用エラーハンドラーを作成しようとしています。また、バッファーが十分に大きいことを確認するために、何百ものJSPページを調べることが可能かどうかはわかりません。
この場合、実際にエラーページをクライアントに表示できない場合でも、スタックトレースの電子メールコードを実行できるようにする方法はありますか?