如果配置加载失败,如何停止部署

时间:2012-11-15 06:02:14

标签: java java-ee glassfish

在部署我的war文件时,我将config从数据库加载到单例中。 如果数据库中缺少任何所需的配置变量,我希望应用程序停止。

在Java中,我会做System.exit(1),但如果我理解正确,这将会杀死JVM,即glassfish。

如何杀死该应用程序?

2 个答案:

答案 0 :(得分:1)

覆盖Servlet的Servlet.init方法:

@Override
public void init(ServletConfig config) throws ServletException {
   super.init(ServletConfig); 

//load config from database, and eventually launch an exception of type ServletException
// for example throw new RequiredConfigMissingException(...);
}

并启动类型为ServletException的异常(如果扩展它会更好),以防缺少必需的配置:

public class RequiredConfigMissingException extends ServletException

Application Server不会加载您的Web应用程序并停止在应用服务器日志上写入错误的部署。

答案 1 :(得分:1)

我设法通过抛出ExceptionInInitializerError来获得所需的结果。 由于异常发生在@Startup单例的@PostConstruct方法内,因此它会停止部署。

我将查看web.xml文件。 感谢您的帮助。