2

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

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

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

4

1 回答 1

3

请尝试以下步骤:

  1. 将您的 servlet 保存在 load-on-startup 列表中,以便您的 servlet 在应用程序启动时初始化。
  2. 在 Servlet.init() 方法中,在 ServletContext 中设置一个属性,说明 servlet 已初始化。例如,myServletInited
  3. 实现 ServletContextListener.contextInitialzied() 方法。检查myServletInited是否存在。如果 is 不存在,则抛出导致应用程序失败的异常。
于 2013-01-07T06:11:46.713 回答