헤르메스 LIFE

[Spring] @ExceptionHandler과 SimpleMappingExceptionResolver 병행해서 사용하기 본문

Spring Framework

[Spring] @ExceptionHandler과 SimpleMappingExceptionResolver 병행해서 사용하기

헤르메스의날개 2012. 3. 12. 15:10
728x90
원문 :  http://blog.naver.com/phrack?Redirect=Log&logNo=80126781327 

예외 처리를 위해 AS-IS controller를 위해

action-servlet.xml에 SimpleMappingExceptionResolver를 등록해주고

Spring 3.0 이후 개발되는 Annotation 기반 Controller를 위해

@ExceptionHanlder를 각 Controller에서 구현해주었더니

@ExceptionHandler가 먹히지 않고 SimpleMappingExceptionResolver가 동작을 한다.

 

@ExceptionHanlder를 사용하는 AnnotationMethodHandlerExceptionResolver는 default로 사용가능하고

SimpleMappingExceptionResolver는 별도로 등록을 해줘야하다보니

SimpleMappingExceptionResolver 만 등록하면 기존 default로 동작하던 AnnotationMethodHandlerExceptionResolver가 동작을 하지 않는 셈

 

그래서 order 속성을 줘서 순서를 정해줘서 문제를 해결 했다.

 

  <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver">
  <property name="order" value="1" />
 </bean>
 
 <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
  <property name="order" value="2" />
  <property name="defaultErrorView" value="/system/error/default" />
 </bean>

 

728x90