Struts2でエラー処理を行う方法について少し混乱します。私はエラーが発生した場合にユーザーが指示される中央ページを一度作成したいと思う。エラーが発生したとき、私は、エラーをキャッチした場合、私は私のアクションクラスで、Struts2でのエラー処理
しかしlog.error(e.getMessage(), e);
としてそれをログに記録することがあります私はlog4jのを使用していますので、私は、それを記録したい(のtry/catch内のすべての私のコードを入れて)中央/共通エラーページが表示されません。だから私はエラーをキャッチすることに決めた、私はエラーをキャッチしていない場合は、中央のエラーページが表示されます。しかし今、どうすればエラーメッセージ/ stacktrackをログに記録するのですか?
このlink を読んだ後、私は次のようでした:
<global-results>
<result name="Exception" type="chain">
<param name="actionName">ErrorPage</param>
<param name="namespace">/error</param>
</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="Exception"/>
</global-exception-mappings>
<action name="selectionPage" class="reports.ReportSelection">
<result>/reports/SelectionPage.jsp</result>
</action>
</package>
<package name="secure" namespace="/error">
<action name="ErrorPage" class="com.myErrorClass">
<result>errorpage.jsp</result>
</action>
</package>
以上の構成によれば、本来はエラーがreports.ReportSelectionにスローされます(しかし、私はそこにそれをキャッチしておりません)ので、最終的にコントロールが来ますcom.myErrorClassに設定します。私はこのクラスのエラーを記録することができますが、私の質問は、ログメッセージがまだ利用可能かどうかです...レポートで最初にスローされたからです。