【问题标题】:spring mvc: detect if an exception has been thrown while loading the contextspring mvc:检测加载上下文时是否抛出异常
【发布时间】:2010-12-04 17:24:18
【问题描述】:

我有一个 spring mvc 应用程序,我们使用 jetty 对其进行测试。

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

在这种情况下,我想用System.exit(1) 停止应用程序或采取其他一些严厉措施,并且不再继续测试周期。

如何做到这一点?

【问题讨论】:

    标签: java spring exception-handling spring-mvc


    【解决方案1】:

    你是如何加载上下文的?通过上下文监听器?定义您自己的(扩展 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);
        }
    }
    

    【讨论】:

    • 我不是自己加载上下文。 Dispatcher Servlet 做到了。
    • @flybywire - 这就是为什么我问你的上下文是如何初始化的。查看我的更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多