jp.terasoluna.fw.web.struts.action
クラス DefaultExceptionHandler

java.lang.Object
  上位を拡張 org.apache.struts.action.ExceptionHandler
      上位を拡張 jp.terasoluna.fw.web.struts.action.DefaultExceptionHandler
直系の既知のサブクラス:
SystemExceptionHandler

public class DefaultExceptionHandler
extends org.apache.struts.action.ExceptionHandler

指定したログレベルでログを出力する汎用例外ハンドラ。

例外発生時のログ出力とエラー画面への遷移を行う。

本機能を利用するためには、Struts設定ファイル(struts-config.xml)に グローバル例外、またはアクションレベル例外ハンドラクラスとして指定する。

ログレベルの指定 プロパティlogLevelに下記の6種類のログレベルを 指定することが可能。

  1. trace
  2. debug
  3. info
  4. warn
  5. error
  6. fatal

※指定しない場合は、デフォルトのerrorとなる。
※logLevelを指定する場合は、<exception>タグのclassName属性に ExceptionConfigExを指定すること。

グローバル例外ハンドリング設定例 Struts設定ファイル(struts-config.xml)に以下のように記述する。

 <struts-config>
   …
   <global-exceptions>
     <exception key="some.key"
                path="/system-error"
                type="org.springframework.dao.DataAccessException"
                className="jp.terasoluna.fw.web.struts.action.ExceptionConfigEx"
                handler="jp.terasoluna.fw.web.struts.action.DefaultExceptionHandler">
       <set-property property="module" value="/exp"/>
     </exception>
     <exception key="some.key"
                path="/system-error"
                type="jp.terasoluna.fw.exception.SystemException"
                className="jp.terasoluna.fw.web.struts.action.ExceptionConfigEx"
                handler="jp.terasoluna.fw.web.struts.action.SystemExceptionHandler">
       <set-property property="module" value="/exp"/>
     </exception>
     <exception key="some.key"
                path="/system-error"
                type="java.lang.Exception"
                className="jp.terasoluna.fw.web.struts.action.ExceptionConfigEx"
                handler="jp.terasoluna.fw.web.struts.action.DefaultExceptionHandler">
       <set-property property="module" value="/exp"/>
       <set-property property="logLevel" value="fatal"/>
     </exception>
   </global-exceptions>
   …
 <struts-config>
 

アクションレベル例外ハンドリング設定例 Struts設定ファイル(struts-config.xml)に以下のように記述する。

 <struts-config>
   …
   <action path="/start"
           type="jp.terasoluna.sample.xxx.SampleAction"
           name="_sampleForm"
           scope="session">
     <exception key="some.key"
                type="jp.terasoluna.sample.xxx.exception.XxxException"
                className="jp.terasoluna.fw.web.struts.action.ExceptionConfigEx"
                handler="jp.terasoluna.fw.web.struts.action.DefaultExceptionHandler"
                path="/sub-forward.do">
       <set-property property="module" value="/sub"/>
     </exception>
     <forward name="success" path="/business-error"/>
   </action>
   …
 <struts-config>
 

なお、<exception>要素のpath属性で遷移先パスが指定 されていない場合は、アクションマッピングのinput属性を 転送先リソースとする。

発生した例外インスタンスは、reuqestにGlobals.EXCEPTION_KEYのキーで格納される。

関連項目:
ExceptionHandler, ExceptionConfigEx, SystemExceptionHandler, Globals

フィールドの概要
protected static java.lang.String LOG_LEVEL_DEBUG
          ログレベル(DEBUG)
protected static java.lang.String LOG_LEVEL_ERROR
          ログレベル(ERROR)
protected static java.lang.String LOG_LEVEL_FATAL
          ログレベル(FATAL)
protected static java.lang.String LOG_LEVEL_INFO
          ログレベル(INFO)
protected static java.lang.String LOG_LEVEL_TRACE
          ログレベル(TRACE)
protected static java.lang.String LOG_LEVEL_WARN
          ログレベル(WARN)
private static org.apache.commons.logging.Log logger
          ログインスタンス
private static org.apache.struts.util.MessageResources messages
          メッセージリソース
 
コンストラクタの概要
DefaultExceptionHandler()
           
 
メソッドの概要
 org.apache.struts.action.ActionForward execute(java.lang.Exception ex, org.apache.struts.config.ExceptionConfig eConfig, org.apache.struts.action.ActionMapping mapping, org.apache.struts.action.ActionForm formInstance, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
           例外ハンドリングを行う。
protected  org.apache.commons.logging.Log getLogger()
          ハンドラのロガーを取得する。
protected  void logException(java.lang.Exception e)
          例外のログを出力する。
protected  void logException(java.lang.Exception e, java.lang.String logLevel)
          例外のログを出力する。
protected  void logException(java.lang.Exception e, java.lang.String logLevel, java.lang.String message)
          例外のログを出力する。
protected  void logException(java.lang.String logLevel, java.lang.String message)
          例外のログを出力する。
 
クラス org.apache.struts.action.ExceptionHandler から継承されたメソッド
storeException, storeException
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

logger

private static final org.apache.commons.logging.Log logger
ログインスタンス


LOG_LEVEL_TRACE

protected static final java.lang.String LOG_LEVEL_TRACE
ログレベル(TRACE)

関連項目:
定数フィールド値

LOG_LEVEL_DEBUG

protected static final java.lang.String LOG_LEVEL_DEBUG
ログレベル(DEBUG)

関連項目:
定数フィールド値

LOG_LEVEL_INFO

protected static final java.lang.String LOG_LEVEL_INFO
ログレベル(INFO)

関連項目:
定数フィールド値

LOG_LEVEL_WARN

protected static final java.lang.String LOG_LEVEL_WARN
ログレベル(WARN)

関連項目:
定数フィールド値

LOG_LEVEL_ERROR

protected static final java.lang.String LOG_LEVEL_ERROR
ログレベル(ERROR)

関連項目:
定数フィールド値

LOG_LEVEL_FATAL

protected static final java.lang.String LOG_LEVEL_FATAL
ログレベル(FATAL)

関連項目:
定数フィールド値

messages

private static org.apache.struts.util.MessageResources messages
メッセージリソース

コンストラクタの詳細

DefaultExceptionHandler

public DefaultExceptionHandler()
メソッドの詳細

execute

public org.apache.struts.action.ActionForward execute(java.lang.Exception ex,
                                                      org.apache.struts.config.ExceptionConfig eConfig,
                                                      org.apache.struts.action.ActionMapping mapping,
                                                      org.apache.struts.action.ActionForm formInstance,
                                                      javax.servlet.http.HttpServletRequest request,
                                                      javax.servlet.http.HttpServletResponse response)
                                               throws javax.servlet.ServletException

例外ハンドリングを行う。

オーバーライド:
クラス org.apache.struts.action.ExceptionHandler 内の execute
パラメータ:
ex - 例外
eConfig - 例外コンフィグ
mapping - アクションマッピング
formInstance - アクションフォーム
request - HTTPリクエスト
response - HTTPレスポンス
戻り値:
遷移情報
例外:
javax.servlet.ServletException - サーブレット例外
関連項目:
ExceptionHandler.execute( java.lang.Exception, org.apache.struts.config.ExceptionConfig, org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse )

logException

protected void logException(java.lang.Exception e,
                            java.lang.String logLevel)
例外のログを出力する。

パラメータ:
e - 発生した例外
logLevel - ログレベル

logException

protected void logException(java.lang.String logLevel,
                            java.lang.String message)
例外のログを出力する。

パラメータ:
logLevel - ログレベル
message - 出力するメッセージ

logException

protected void logException(java.lang.Exception e,
                            java.lang.String logLevel,
                            java.lang.String message)
例外のログを出力する。

パラメータ:
e - 発生した例外
logLevel - ログレベル
message - 出力するメッセージ

logException

protected void logException(java.lang.Exception e)
例外のログを出力する。

※ここでは出力しない

オーバーライド:
クラス org.apache.struts.action.ExceptionHandler 内の logException
パラメータ:
e - 発生した例外
関連項目:
ExceptionHandler.logException( java.lang.Exception)

getLogger

protected org.apache.commons.logging.Log getLogger()
ハンドラのロガーを取得する。

このクラスを拡張して独自の例外ハンドラを実装する場合、 サブクラスでこのメソッドをオーバーライドして自身のロガーを返すこと。

戻り値:
ロガー