在部署我的战争文件时,我将配置加载到数据库中的单例中。如果数据库中缺少任何必需的配置变量,我希望应用程序停止。
在 Java 中,我会执行 System.exit(1),但如果我理解正确,这将杀死 JVM,即 glassfish。
如何杀死应用程序?
在部署我的战争文件时,我将配置加载到数据库中的单例中。如果数据库中缺少任何必需的配置变量,我希望应用程序停止。
在 Java 中,我会执行 System.exit(1),但如果我理解正确,这将杀死 JVM,即 glassfish。
如何杀死应用程序?
覆盖 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 应用程序并停止部署,并将错误写入应用程序服务器日志。
我通过抛出 ExceptionInInitializerError 设法获得了所需的结果。由于异常发生在 @Startup 单例的 @PostConstruct 方法中,它会停止部署。
我将查看 web.xml 文件。感谢所有的帮助。