controlleradvice 사용문의
- 작성자 :
- 김*천
- 작성일 :
- 2019-11-06 17:00:39
- 조회수 :
- 2,049
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
controlleradvice 설정 방법을 문의드립니다.
질문전 등록된 답변들을 검색해 보았는데요.
--------------------------------------------------------
해당 내용에 대해서
2가지 방법이 있을듯 합니다.
@ControllerAdvice를 적용한
AnnotaionExceptionHandler 클래스에
@EnableWebMvc를 적용하시면 됩니다.
다른 방법으로는
dispatcher-servlet.xml에 다음 설정을 추가하는 방법입니다.
<mvc:annotation-driven/>를 추가하시면 됩니다.
------------------------------------------------------------------
이렇게 답변이 되어 있는데요..
위 설정을 하면 controller단에서 예외발생시 controlleradvice에서 전역으로 예외를 캐치할수 있긴합니다만
문제는 dispatcher-servlet.xml설정에서
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="webBindingInitializer">
<bean class="egovframework.com.cmm.web.EgovBindingInitializer"/>
</property>
<property name="customArgumentResolvers">
<list>
<bean class="egovframework.rte.ptl.mvc.bind.CommandMapArgumentResolver"/>
</list>
</property>
<property name="messageConverters">
<list>
<ref bean="jsonHttpMessageConverter"/>
<ref bean="byteHttpMessageConverter"/>
</list>
</property>
</bean>
위와같이 commandMap를 커스텀해서 사용하고 있습니다.
그리고,
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<bean class="kr.jkds.cmm.interceptor.CMMAuthNewInterceptor">
<property name="allowedUrl">
<array>
<value>/login/checkLogin.do</value>
<value>/login/passwordLogin.do</value>
</array>
</property>
</bean>
</list>
</property>
</bean>
기존에 운영되던 인터셉터가 동작을 하지 않습니다.
결론은 @EnableWebMvc 또는 <mvc:annotation-driven/> 설정에 의해 @controlleradvice가 작동은 하지만
기존에 운영되던 위의 설정들이 무시되는데 어떤식으로 변경을 해야 할지 궁금합니다.
빠른 답변 부탁드립니다.
질문전 등록된 답변들을 검색해 보았는데요.
--------------------------------------------------------
해당 내용에 대해서
2가지 방법이 있을듯 합니다.
@ControllerAdvice를 적용한
AnnotaionExceptionHandler 클래스에
@EnableWebMvc를 적용하시면 됩니다.
다른 방법으로는
dispatcher-servlet.xml에 다음 설정을 추가하는 방법입니다.
<mvc:annotation-driven/>를 추가하시면 됩니다.
------------------------------------------------------------------
이렇게 답변이 되어 있는데요..
위 설정을 하면 controller단에서 예외발생시 controlleradvice에서 전역으로 예외를 캐치할수 있긴합니다만
문제는 dispatcher-servlet.xml설정에서
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="webBindingInitializer">
<bean class="egovframework.com.cmm.web.EgovBindingInitializer"/>
</property>
<property name="customArgumentResolvers">
<list>
<bean class="egovframework.rte.ptl.mvc.bind.CommandMapArgumentResolver"/>
</list>
</property>
<property name="messageConverters">
<list>
<ref bean="jsonHttpMessageConverter"/>
<ref bean="byteHttpMessageConverter"/>
</list>
</property>
</bean>
위와같이 commandMap를 커스텀해서 사용하고 있습니다.
그리고,
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<bean class="kr.jkds.cmm.interceptor.CMMAuthNewInterceptor">
<property name="allowedUrl">
<array>
<value>/login/checkLogin.do</value>
<value>/login/passwordLogin.do</value>
</array>
</property>
</bean>
</list>
</property>
</bean>
기존에 운영되던 인터셉터가 동작을 하지 않습니다.
결론은 @EnableWebMvc 또는 <mvc:annotation-driven/> 설정에 의해 @controlleradvice가 작동은 하지만
기존에 운영되던 위의 설정들이 무시되는데 어떤식으로 변경을 해야 할지 궁금합니다.
빠른 답변 부탁드립니다.
A
안녕하십니까, 표준프레임워크센터입니다.
추가하신 인터셉터가 자체적으로 커스터마이징하셨기 때문에...
충돌부분에 대해서 센터쪽에서 가이드 어려운 드리기 부분입니다.
서버 구동 및 자체적인 디버깅이 필요해보입니다.
다시 한번 해당 환경이나 테스트가 불가하기 때문에 도움드리지 못해 죄송합니다.
그럼 좋은 하루되시기 바랍니다.
감사합니다.
추가하신 인터셉터가 자체적으로 커스터마이징하셨기 때문에...
충돌부분에 대해서 센터쪽에서 가이드 어려운 드리기 부분입니다.
서버 구동 및 자체적인 디버깅이 필요해보입니다.
다시 한번 해당 환경이나 테스트가 불가하기 때문에 도움드리지 못해 죄송합니다.
그럼 좋은 하루되시기 바랍니다.
감사합니다.