Servlets 当servlet无法初始化时,如何停止整个JavaWebApp

Servlets 当servlet无法初始化时,如何停止整个JavaWebApp,servlets,exception-handling,Servlets,Exception Handling,如果我的任何servlet未能初始化,我希望我的web应用程序在启动时失败。 如果我从Servlet.init()方法抛出一个异常,我希望它会导致整个应用程序失败,但显然不会。web容器(在我的例子中是Tomcat7)无法加载特定的servlet,但报告应用程序无论如何都已成功部署 如果从例如ServletContextListener.contextInitialized()方法引发的异常,它的行为与预期的一样,但是为什么从Servlet.init()引发的异常没有这种效果呢 如果出现Serv

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

如果从例如
ServletContextListener.contextInitialized()
方法引发的异常,它的行为与预期的一样,但是为什么从
Servlet.init()引发的异常没有这种效果呢


如果出现Servlet初始化错误,有没有办法停止应用程序?

尝试以下步骤:

  • 将servlet保持在启动时加载列表中,以便您的servlet 在应用程序启动时初始化
  • 在Servlet.init()方法中,在ServletContext中设置一个属性,表示Servlet已初始化。前,我的服务
  • 实现ServletContextListener.contextInitialzied()方法。检查myServletInited是否存在。如果不存在,则引发异常,导致应用程序失败

  • 我认为这不适用于在Servlet.init()之前调用contextInitialized,但如果contextInitialized失败,它将终止整个应用程序。