에러 분리처리
- 작성자 :
- 석*동
- 작성일 :
- 2014-08-22 10:15:53
- 조회수 :
- 899
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
Service레벨이나 DAO레벨에서 발생하는 오류를 처리하기 위해 ExceptionHandler를 aop aspect로 구현했습니다.
에러처리가 잘 되었습니다.
Controller레벨에서 발생하는 오류는 처리가 aspect로는 안되어서 찾아보다보니 ExceptionResolver를 이용하면 가능하다는 걸 발견해서
ExceptionResolver를 구현했습니다.
그랬더니 모든 에러처리가 ExceptionResolver여기서만 이루어 집니다.
분리되어서 에러 처리가 되었으면 좋겠는데 방법이 없을까요?
------DispatcherServlet
<context:component-scan base-package="com.insilicogen.bio">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
<bean id="exceptionResolver" class="com.insilicogen.bio.common.exception.BaseExceptionResolver">
<property name="view" value="comm/error500"/>
</bean>
에러처리가 잘 되었습니다.
Controller레벨에서 발생하는 오류는 처리가 aspect로는 안되어서 찾아보다보니 ExceptionResolver를 이용하면 가능하다는 걸 발견해서
ExceptionResolver를 구현했습니다.
그랬더니 모든 에러처리가 ExceptionResolver여기서만 이루어 집니다.
분리되어서 에러 처리가 되었으면 좋겠는데 방법이 없을까요?
------DispatcherServlet
<context:component-scan base-package="com.insilicogen.bio">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
<bean id="exceptionResolver" class="com.insilicogen.bio.common.exception.BaseExceptionResolver">
<property name="view" value="comm/error500"/>
</bean>
A
안녕하세요. 석호동님.
다음과 같이 SimpleMappingExceptionResolver를 사용하시면 Exception에 따라 다른 view를 호출하실 수 있습니다.
<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>
그럼, 즐거운 하루되십시오.
감사합니다.
다음과 같이 SimpleMappingExceptionResolver를 사용하시면 Exception에 따라 다른 view를 호출하실 수 있습니다.
<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>
그럼, 즐거운 하루되십시오.
감사합니다.