我有一个spring mvc应用程序,我们使用jetty运行测试。
有时加载上下文完全失败,因为错误的xml或者因为Class Not Found异常,或者因为bean在构造函数,setter或init方法中抛出异常。
在这种情况下,我想用System.exit(1)
停止应用程序或采取其他一些严厉的措施,而不是让测试周期继续下去。
怎么办呢?
答案 0 :(得分: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);
}
}