如何在servlet初始化失败时停止整个java webapp

时间:2013-01-06 18:51:46

标签: servlets exception-handling

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

如果例如从例如抛出异常,它的行为与预期的一致。 ServletContextListener.contextInitialized()方法,但为什么从Servlet.init()抛出的异常没有这种效果?

有没有办法在出现Servlet初始化错误时停止应用程序?

1 个答案:

答案 0 :(得分:3)

请尝试以下步骤:

  1. 将您的servlet保存在load-on-startup列表中,以便您的servlet 在应用程序启动时初始化。
  2. 在Servlet.init()方法中,在ServletContext中设置一个属性,表示servlet已初始化。例如, myServletInited
  3. 实现ServletContextListener.contextInitialzied()方法。检查是否存在 myServletInited 。如果不存在则抛出一个使应用程序失败的异常。