exceptionhandle에 대해서
- 작성자 :
- 이*주
- 작성일 :
- 2014-07-30 16:36:14
- 조회수 :
- 2,846
- 구분 :
- 기타
- 진행상태 :
- 완료
Q
제가 aop쪽 에러핸들링에대하여 구현할게 있어서 여기저기 헤마다가 너무답답해서 질문을 하게댔습니다.
개념이 좀부족하여 질문이좀 부족하더라고 양해좀해주세요.
여러종류의 에러들이
web.xml
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/common/error.jsp</location>
</error-page>
위 소스로인하여 error.jsp페이지로는 가던데
이 페이지에 outofmemori 등등 콘솔에 에러나는 내용을 error.jsp 이페이지에 찍어주려고 합니다.
context-aspect.xml 이쪽에서
<value>**service.impl.*</value>에러시
egovframework.com.cmm.EgovComOthersExcepHndlr클래스를 타도록 선언이 되어있던데
요클래스에서 log를찍어바도 안찍히고 이곳을 타는거같지도 않더군요 .....
솔직히 말해서...
페이지 이동시 컨트롤러보다는 servlet이먼저 실행되어 컨트롤러를 타기도전에 에러가나는것 까진알겟는데
web.xml에 설정대어있는걸로 어떻게 error.jsp페이지로 이동되는지도 잘 모르겟습니다...
어떤식으로 해야할지 조언좀주시면 감사하겠습니다 ...
--------------------------------------------------------
좀더해메다보니 service.impl 쪽에서 에러가날경우에만
public void occur(Exception exception, String packageName) 이쪽을 타는거엿더군요....
죄송하지만 다시질문좀할게요 ㅠ
web.xml설정을통해 어떻게 error.jsp페이지로 가는지 구체적으로좀알고싶습니다..
그리고 error.jsp페이지로올때 에러메세지등 parameter로 넘어오는 객체가있는지 있다면 어떻게볼수있는지도 알려주시면 감사하겠습니다.
마지막으로
저는 public void occur(Exception exception, String packageName) 메소드에서
특정 페이지로 전환을해주고싶은데 방법이있는지.... 답변주시면 감사하겠습니다.
개념이 좀부족하여 질문이좀 부족하더라고 양해좀해주세요.
여러종류의 에러들이
web.xml
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/common/error.jsp</location>
</error-page>
위 소스로인하여 error.jsp페이지로는 가던데
이 페이지에 outofmemori 등등 콘솔에 에러나는 내용을 error.jsp 이페이지에 찍어주려고 합니다.
context-aspect.xml 이쪽에서
<value>**service.impl.*</value>에러시
egovframework.com.cmm.EgovComOthersExcepHndlr클래스를 타도록 선언이 되어있던데
요클래스에서 log를찍어바도 안찍히고 이곳을 타는거같지도 않더군요 .....
솔직히 말해서...
페이지 이동시 컨트롤러보다는 servlet이먼저 실행되어 컨트롤러를 타기도전에 에러가나는것 까진알겟는데
web.xml에 설정대어있는걸로 어떻게 error.jsp페이지로 이동되는지도 잘 모르겟습니다...
어떤식으로 해야할지 조언좀주시면 감사하겠습니다 ...
--------------------------------------------------------
좀더해메다보니 service.impl 쪽에서 에러가날경우에만
public void occur(Exception exception, String packageName) 이쪽을 타는거엿더군요....
죄송하지만 다시질문좀할게요 ㅠ
web.xml설정을통해 어떻게 error.jsp페이지로 가는지 구체적으로좀알고싶습니다..
그리고 error.jsp페이지로올때 에러메세지등 parameter로 넘어오는 객체가있는지 있다면 어떻게볼수있는지도 알려주시면 감사하겠습니다.
마지막으로
저는 public void occur(Exception exception, String packageName) 메소드에서
특정 페이지로 전환을해주고싶은데 방법이있는지.... 답변주시면 감사하겠습니다.
A
안녕하세요. 이몽주님.
표준프레임워크 부분에서 오류에 대한 처리는 AOP를 통한 Exception 처리와 Spring MVC에서의 화면 제어로 구분됩니다.
말씀하신 것 처럼 AOP 상에서의 처리는 ExceptionManager를 통해 ExceptionHandler의 occur 메소드를 호출하는데,
이 부분은 web 화면 처리 상의 흐름을 통제할 수 없습니다.
즉, 서버 상에 오류에 대한 로그 기록, 오류에 대한 메시지 처리 등으로 Exception에 특정 정보는 담는 정의 처리를 할 수 있지만, 특정 오류 화면으로 이동하는 제어는 불가능합니다.
화면 제어 처리를 위해서는 하는 부분은 Spring MVC 설정 상의 ExceptionResolver입이다.
예를 들면 다음과 같은 설정이 Spring MVC 상에 지정되어 있다면
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView" value="egovframework/com/cmm/error/egovError"/>
<property name="exceptionMappings">
<props>
<prop key="org.springframework.dao.DataAccessException">egovframework/com/cmm/error/dataAccessFailure</prop>
<prop key="org.springframework.transaction.TransactionException">egovframework/com/cmm/error/dataAccessFailure</prop>
<prop key="egovframework.rte.fdl.cmmn.exception.EgovBizException">egovframework/com/cmm/error/egovBizException</prop>
<prop key="org.springframework.web.HttpSessionRequiredException">egovframework/com/uat/uia/EgovLoginUsr</prop>
</props>
</property>
</bean>
발생된 Exception에 따라서 특정 view를 리턴하고 해당 view(jsp)로 표시되는 형태입니다.
혹 이런 ExceptionHandler가 등록되어 있지 않으신 경우 web.xml error-page 설정으로 제어가 가능합니다. (Exception에 따라 특정 jsp 지정)
그럼, 즐거운 하루되십시오.
감사합니다.
표준프레임워크 부분에서 오류에 대한 처리는 AOP를 통한 Exception 처리와 Spring MVC에서의 화면 제어로 구분됩니다.
말씀하신 것 처럼 AOP 상에서의 처리는 ExceptionManager를 통해 ExceptionHandler의 occur 메소드를 호출하는데,
이 부분은 web 화면 처리 상의 흐름을 통제할 수 없습니다.
즉, 서버 상에 오류에 대한 로그 기록, 오류에 대한 메시지 처리 등으로 Exception에 특정 정보는 담는 정의 처리를 할 수 있지만, 특정 오류 화면으로 이동하는 제어는 불가능합니다.
화면 제어 처리를 위해서는 하는 부분은 Spring MVC 설정 상의 ExceptionResolver입이다.
예를 들면 다음과 같은 설정이 Spring MVC 상에 지정되어 있다면
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView" value="egovframework/com/cmm/error/egovError"/>
<property name="exceptionMappings">
<props>
<prop key="org.springframework.dao.DataAccessException">egovframework/com/cmm/error/dataAccessFailure</prop>
<prop key="org.springframework.transaction.TransactionException">egovframework/com/cmm/error/dataAccessFailure</prop>
<prop key="egovframework.rte.fdl.cmmn.exception.EgovBizException">egovframework/com/cmm/error/egovBizException</prop>
<prop key="org.springframework.web.HttpSessionRequiredException">egovframework/com/uat/uia/EgovLoginUsr</prop>
</props>
</property>
</bean>
발생된 Exception에 따라서 특정 view를 리턴하고 해당 view(jsp)로 표시되는 형태입니다.
혹 이런 ExceptionHandler가 등록되어 있지 않으신 경우 web.xml error-page 설정으로 제어가 가능합니다. (Exception에 따라 특정 jsp 지정)
그럼, 즐거운 하루되십시오.
감사합니다.