2010-12-14 5 views
8

spring SimpleMappingExceptionResolver를 사용하여 Spring 응용 프로그램에서 예외 처리를 만들었습니다. 모든 것이 잘 작동합니다. 이제 jsp 페이지에서 catch 된 예외를 어떻게 든 인쇄해야합니다. 메시지 및 스택 추적과 같은 것입니다. 내 JSP에서 "예외"특성에서 예외 개체를 발견했습니다. 내가해야 할 일은 다음과 같습니다.오류 페이지 - JSP에서 스택 추적을 인쇄하는 방법

${exception.printStackTrace()} 

나는 어떻게해야할지 모르겠다. 어떻게 그렇게 할 수있는 방법이 어떤 제안에 대한

감사합니다,

는 :-)? 마테오

+1

메소드 이름에 대한 API를 찾을 수 없습니까? http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Throwable.html#printStackTrace(). 질문은 항상 어떤 종류의 오류가 발생했는지 나열해야합니다. 심지어 그 라인은 아무 것도 출력하지 않습니다. –

+0

@Juan 저는 @mateo가 페이지 내용에 printStackTrace()를 삽입 할 방법을 찾을 수 없다고 믿었습니다. 인라인 코드 (eew)없이 정확히 복제하기는 어렵습니다. StringWriter 주위에 PrintWriter를 설정합니다. –

답변

17

내가 생각할 수있는 가장 쉬운 솔루션이 활용, 스택 트레이스 요소를 루프입니다 거기 Throwable.getStackTrace() 방법 :

<c:forEach items="${exception.stackTrace}" var="element"> 
    <c:out value="${element}" /> 
</c:forEach> 

당신은 물론, 일부 서식을 추가해야 할 것입니다.

+1

+1. 그러나 실제로 JSP에서 스택 트레이스를 인쇄해서는 안됩니다. 사용자는 스택 트레이스를 좋아합니다.) – Bozho

+0

@Bozho : 예. 나는 이것이 진단 목적을위한 것이라고 생각하지만, Tomcat의 디폴트 에러 페이지를 사용하고 싶다. 이봐. – skaffman

+1

예 진단 목적으로 정확하게 사용합니다. Tomcat 로그에 액세스 할 수 없으며이 페이지를 아직 사용자 정의했습니다. 그래서 Tomcat 기본 오류 페이지를 다시 사용하는 것보다 쉬울 것이라고 생각했습니다. 그러나 어쨌든, 감사합니다. – mateo

2

이전에 페이지에서이 작업 (개발자/로컬 환경 만)을 수행하고 텍스트 영역이나 미리 서식이 지정된 블록에 표시하고 싶었습니다. skaffman의 출력은 각 strack 추적 요소를 인쇄하지만 메시지 및 예외 클래스는 인쇄하지 않습니다.

printStackTrace()에 따라 사전 형식을 지정하려면 Spring EL 및 commons-lang3을 사용하십시오.

<spring:eval expression="T(org.apache.commons.lang3.exception.ExceptionUtils).getStackTrace(exception)"/> 
관련 문제