2009-10-07 73 views
0

我有一个spring mvc应用程序,我们使用jetty对它进行测试。spring mvc:检测加载上下文时是否抛出异常

有时上下文的加载完全失败,因为坏的xml或因为Class Not Found异常或因为bean在构造函数,setter或init方法中抛出异常。

在这种情况下,我想通过System.exit(1)停止申请或采取其他一些激烈措施,并且没有进一步的测试周期。

如何做到这一点?

回答

3

你是如何加载上下文的?通过上下文监听器?定义你自己的(扩展的ContextLoaderListener和覆盖contextInitialized()),并调用System.exit(1)当上下文初始化失败:

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

更新对于DispatcherServlet的,使用同样的方法,但覆盖initWebApplicationContext()方法:

@Override 
protected WebApplicationContext initWebApplicationContext() throws BeansException { 
    try { 
     super.initWebApplicationContext(); 
    } catch (Throwable T) { 
     T.printStackTrace(); 
     System.exit(1); 
    } 
} 
+0

我没有自己加载上下文。分派器Servlet执行它。 – flybywire 2009-10-07 18:02:51

+0

@flybywire - 这就是为什么我问你的上下文是如何初始化的。查看我的更新。 – ChssPly76 2009-10-07 18:24:41

相关问题