在部署我的war文件时,我将config从数据库加载到单例中。 如果数据库中缺少任何所需的配置变量,我希望应用程序停止。
在Java中,我会做System.exit(1),但如果我理解正确,这将会杀死JVM,即glassfish。
如何杀死该应用程序?
答案 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文件。 感谢您的帮助。