【问题标题】:How to stop the entire java webapp when the servlet fails to initializeservlet初始化失败时如何停止整个java webapp
【发布时间】:2012-12-20 13:38:18
【问题描述】:

如果我的任何 servlet 初始化失败,我希望我的 Web 应用程序在启动时失败。 我希望如果我从Servlet.init() 方法中抛出一个异常,它会导致整个应用程序失败,但显然它不会。 Web 容器(在我的例子中是 Tomcat 7)只是无法加载特定的 servlet,但据报告应用程序无论如何都已成功部署。

如果从例如抛出异常,它会按预期运行。 ServletContextListener.contextInitialized() 方法,但是为什么Servlet.init() 抛出的异常没有这个效果呢?

如果出现 Servlet 初始化错误,有什么方法可以停止应用程序?

【问题讨论】:

    标签: servlets exception-handling


    【解决方案1】:

    尝试以下步骤:

    1. 将您的 servlet 保存在启动时加载列表中,这样您的 servlet 在应用程序启动时初始化。
    2. 在 Servlet.init() 方法中,在 ServletContext 中设置一个属性,说明 servlet 已初始化。例如,myServletInited
    3. 实现 ServletContextListener.contextInitialzied() 方法。检查是否存在 myServletInited。如果 is 不存在,则引发应用程序失败的异常。

    【讨论】:

    • 我认为这不起作用,因为 contextInitialized 在 Servlet.init() 之前被调用,但如果 contextInitialized 失败它会终止整个应用程序。
    猜你喜欢
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多