2012-11-04 3 views
0

Javadoc은 DispatcherServlet에서 AnnotationMethodHandlerExceptionResolver, ResponseStatusExceptionResolverDefaultHandlerExceptionResolver이 기본적으로 활성화되어 있다고 말합니다.Spring 3.x에서 기본 HandlerExceptionResolver 인스턴스를 검색하는 방법은 무엇입니까?

HandlerExceptionResolverComposite을 만들려고하고 있지만 기본적으로 활성화 된 HandlerExceptionResolver 인스턴스를 검색하고 싶습니다. @Autowired을 시도했지만 실패했습니다.

내 현재 솔루션은 다음과 같습니다

@Configuration 
public class ErrorHandling { 

// @Autowired 
// AnnotationMethodHandlerExceptionResolver amher; 
// 
// @Autowired 
// ResponseStatusExceptionResolver rser; 
// 
// @Autowired 
// DefaultHandlerExceptionResolver dher; 

    @Bean 
    HandlerExceptionResolverComposite getHandlerExceptionResolverComposite() { 

     HandlerExceptionResolverComposite result 
      = new HandlerExceptionResolverComposite(); 

     List<HandlerExceptionResolver> l 
      = new ArrayList<HandlerExceptionResolver>(); 

     l.add(new AnnotationMethodHandlerExceptionResolver()); 
     l.add(new ResponseStatusExceptionResolver()); 
     l.add(new DefaultHandlerExceptionResolver()); 

     result.setExceptionResolvers(l); 

     return result; 

    } 

} 

내 질문은 : 어떻게 기본적으로 활성화 HandlerExceptionResolver 인스턴스를 검색 할 수 있습니다? 내 인스턴스를 만들면 문제가됩니까?

Map<String, HandlerExceptionResolver> matchingBeans = BeanFactoryUtils 
        .beansOfTypeIncludingAncestors(context, HandlerExceptionResolver.class, true, false); 

BeanFactoryUtils

에서

+0

해결 방법이 있습니까? –

+0

예.하지만 한 가지 사례 만 테스트했습니다. – JVerstry

답변

1

찾을 뭔가 DispatchServlet의 원인을 확인하고 initHandlerExceptionResolvers로 이동() 메소드를, 아마 당신은 등록 된 모든 예외 리졸버를 얻기의 방법을 찾을 수 있습니다.

감사합니다.

관련 문제