从init方法初始化中停止Servlet上下文

时间:2014-06-19 07:40:19

标签: java servlets servletcontextlistener

我有一个servlet,它在servlet的<load-on-startup>1</load-on-startup>方法中的服务器启动init()上加载我正在检查属性文件中的某些参数。如果参数不存在,我想停止整个上下文的初始化。

public void init(){
   Readproperty pr = new ReadProperty();
     if(!pr.parameterExists()){
     //Edit: 
     throw new UnavailableException("Testing Stopping Context")

    }
}

最好的方法是什么?我现在想将此代码移动到我的上下文监听器类,所以我正在寻找从`init()&#39;方法

2 个答案:

答案 0 :(得分:3)

您无法阻止Web应用程序从servlet启动。

如果要停止Web应用程序开始将测试移至ServletContextListenercontextInitialized()方法中的异常将阻止Web应用程序启动。

如果您使用的是最新的Tomcat 7.0.x或8.0.x版本,则可以在Context或Host上使用Tomcat特定选项failCtxIfServletStartFails,如果启动时出现任何负载,将导致Web应用程序失败servlet失败但这是非标准的。 ServletContextListener是更好的选择。

答案 1 :(得分:-2)

在那里抛出任何异常。初始化将中止。