2010-06-23 3 views
3

Struts2에서 작업하고 있으며 오류 처리 메커니즘에 문제가 있습니다. 내가하고 싶은 무엇 은 또는 JSP 페이지 내 ( 콘솔에 인쇄 등) (태그 라이브러리를 사용하지 않고)을 스택 트레이스예외에게 액션 클래스 내에서 사용하기 위해 특성을 얻을 수 있습니다.Struts 2 오류 처리 - stackTrace 및 예외 속성을 얻으려면 어떻게해야합니까?

내 struts.xml 파일의 미리보기가 우는 소리 : 사전에

<default-interceptor-ref name="defaultStack"/> 

    <global-results> 
     <result name="Exception" type="redirect">/error.action</result> 
    </global-results> 

    <global-exception-mappings> 
     <exception-mapping result="Exception" exception="java.lang.Exception" /> 
    </global-exception-mappings> 

    <action name="error" class="fend.ErrorAction"> 
     <result>/error.jsp</result> 
     <interceptor-ref name="configStack"/> 
    </action> 

감사합니다!

답변

0

예외를 JSP 페이지 exception.jsp로 리디렉션한다는 점을 제외하고는 동일한 설정을 사용합니다. 다음 내가 가지고 해당 페이지에서

:

<s:set name="ex" value="%{exception}" scope="page"/> 

난 당신이 태그 libs와 피하려고하지만, 아마도 예외 속성은 액션에서 사용할 수 알아? 예외 객체로 내 작업에 예외를 전달하는 데 어려움을 겪었던 것을 기억합니다. 설정 태그 다음과 같은 JSP의 sciptlet :

난 단지 문자열로 전달 couuld (내 기억이에 퍼지, 그 오랜만) 나는 JSP 페이지로 리디렉션 결국

는 위의 포함 내가 정착했던 곳

StackTraceElement[] stackTrace = exception.getStackTrace(); 

나는이 작업을 수행하려면 한 기억은 이러한 상황 중 하나였다 있도록 :

<% 
Exception exMsg = (Exception)pageContext.getAttribute("ex"); 
logger.logException(application.getRealPath("")+ "/WEB-INF/error.txt",exMsg); 
%> 

<br/><br/>User friendly message here 

로거 클래스는 예외 클래스의 스택 추적을 얻었고 파일에 기록 좀 지저분한 코드지만 작동했습니다 ... 만약 우리가 뭔가 더 잘 알고 있다고 생각하면

0

com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor을 사용하여 원하는 로그 수준 (및 원하는 로거)에서 예외를 기록 할 수 있습니다. (Read the documentation here)

가장 쉬운 방법은 아래 struts.xml에 defaultStack을 사용자 정의하는 것입니다 :

<interceptor-stack name="defaultStack"> 
    <interceptor-ref name="exception"> 
    <param name="logEnabled">true</param> 
    <param name="logCategory">com.mycompany.app.unhandled</param> 
    <param name="logLevel">WARN</param> 
    </interceptor-ref> 
    <interceptor-ref name="alias"/> 
    <interceptor-ref name="servletConfig"/> 
    ........ 
</interceptor-stack> 
1

당신의 JSP에 :

Exception : <s:property value="%{exception}" /> 

Exception stacktrace: <s:property value="exceptionStack"/> 
관련 문제