在初始化期间以编程方式停止Java EE应用程序

cze*_*rny 4 application-server java-ee

是否有任何Java EE标准(应用程序服务器交叉兼容)方式如何在初始化期间停止Java EE应用程序,即在运行@SingleConstruct @Singleton @Startup类的anotated方法期间?

@Singleton
@Startup
public class Initializer {

    @PostConstruct
    public void checkConfiguration() {
        // stop application here
    }
}
Run Code Online (Sandbox Code Playgroud)

我搜索软件方式来停止应用程序,整个应用程序服务器,没有什么System#exit.

Ste*_*e C 9

如果从@Startup注释的@Singleton中的@PostConstruct注释方法抛出任何类型的RuntimeException(例如IllegalArgumentException用于配置错误),那么整个应用程序将无法部署.

来自EJB 3.2规范的§4.8.1"Singleton Session Bean初始化":

如果启动注释出现在单例会话bean类中,或者如果通过部署描述符指定单例会话bean需要初始化初始化,则容器必须在应用程序启动序列期间初始化单例会话Bean实例.在任何外部客户端请求(即,源自应用程序之外的客户端请求)被传递到应用程序中的任何企业bean组件之前,容器必须初始化所有此类启动时单例会话Bean.

如果初始化失败,则无法满足这一要求.