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

时间:2015-03-19 10:57:58

标签: java-ee application-server

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

@Singleton
@Startup
public class Initializer {

    @PostConstruct
    public void checkConfiguration() {
        // stop application here
    }
}

我搜索软件方法来停止应用程序,整个应用程序服务器,就像System#exit一样。

1 个答案:

答案 0 :(得分:9)

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

来自EJB 3.2规范的§4.8.1“Singleton Session Bean Initialization”:

  

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

如果初始化失败,则无法满足。