2009-10-07 3 views
0

스프링 mvc 응용 프로그램이 있고 jetty를 사용하여 테스트를 실행합니다.spring mvc : 컨텍스트를로드하는 중에 예외가 throw 된 경우를 감지합니다.

가끔 xml이 잘못되었거나 클래스가 발견되지 않았거나 Bean이 생성자, 설정자 또는 초기화 메소드에서 예외를 throw하기 때문에 컨텍스트로드가 완전히 실패합니다.

그런 경우에 나는 System.exit(1)으로 응용 프로그램을 중지하거나 다른 과감한 조치를 취하고 시험주기를 더 이상 진행하지 않으려합니다.

어떻게 할 수 있습니까?

답변

3

컨텍스트를 어떻게로드합니까? 컨텍스트 리스너를 통해? initWebApplicationContext() 방법 DispatcherServlet에 대한

@Override 
public void contextInitialized(ServletContextEvent event) { 
    try { 
     super.contextInitialized(event); 
    } catch (Throwable T) { 
     T.printStackTrace(); 
     System.exit(1); 
    } 
} 

업데이트를, 같은 방법을 사용하지만, 오버라이드 (override) :

@Override 
protected WebApplicationContext initWebApplicationContext() throws BeansException { 
    try { 
     super.initWebApplicationContext(); 
    } catch (Throwable T) { 
     T.printStackTrace(); 
     System.exit(1); 
    } 
} 
을 자신이 (의 ContextLoaderListener를 확장하고 contextInitialized()을 무시)하고 호출을 System.exit을 (1) 컨텍스트 초기화가 실패 할 때 정의
+0

본인이 직접 컨텍스트를로드하지 않습니다. Dispatcher Servlet이이를 수행합니다. – flybywire

+0

@flybywire - 그 이유는 귀하의 컨텍스트를 초기화하는 방법을 요청했습니다. 내 업데이트를 참조하십시오. – ChssPly76

관련 문제