struts 2グローバル例外ブロックレコードログ
2071 ワード
この形式のグローバル異常ジャンプを使用して、レコードログをjspページに書く必要があります.
ブロッキングをカスタマイズし、ブロッキングに異常を記録します
ブロッキング実装
<global-exception-mappings>
<exception-mapping result="error" exception="java.lang.Exception">/errorPage.jsp
</exception-mapping>
</global-exception-mappings>
ブロッキングをカスタマイズし、ブロッキングに異常を記録します
<package name="basePriv" extends="struts-default">
<interceptors>
<interceptor name="exceptionInterceptor" class="com.hanpeng.b2c.phone.priv.ExceptionInterceptor"/>
<interceptor-stack name="b2cplatPrivInterceptor">
<interceptor-ref name="exceptionInterceptor"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="b2cplatPrivInterceptor"/>
<global-results>
<result name="error">/error.jsp</result>
</global-results>
</package>
ブロッキング実装
package com.hanpeng.b2c.phone.priv;
import org.apache.log4j.Logger;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class ExceptionInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 1008901298342362080L;
private static final Logger log = Logger
.getLogger(ExceptionInterceptor.class);
@Override
public String intercept(ActionInvocation invocation) throws Exception {
String actionName = invocation.getInvocationContext().getName();
try {
String result = invocation.invoke();
return result;
} catch (Exception e) {
log.error(actionName, e);
return "error";
}
}
}