2013-01-06 65 views
2

如果我的servlet初始化失败,我希望我的web应用程序在启动时失败。 我期望如果我抛出一个异常形式的Servlet.init()方法会导致整个应用程序失败,但显然它没有。 Web容器(在我的情况下是Tomcat 7)只是无法加载该特定的servlet,但据报道该应用程序无论如何都已成功部署。如何在servlet初始化失败时停止整个java webapp

如果例如抛出异常,它会像预期那样工作。 ServletContextListener.contextInitialized()方法,但为什么从Servlet.init()抛出的异常没有这种效果?

有什么办法可以在Servlet初始化错误的情况下停止应用程序?

回答

3

试试这个步骤如下:

  1. 保持你的servlet中时加载的启动列表,使得你的servlet 是在应用程序启动初始化。
  2. 在Servlet.init()方法中,在ServletContext中设置一个属性,声明servlet已初始化。 ex,myServletInited
  3. 实施ServletContextListener.contextInitialzied()方法。检查是否存在myServletInited。如果不存在则抛出应用程序失败的异常。