Jboss 是否可以在Wildfly中检测应用程序何时成功启动?

Jboss 是否可以在Wildfly中检测应用程序何时成功启动?,jboss,wildfly,wildfly-8,Jboss,Wildfly,Wildfly 8,有没有办法检测Wildfly何时成功加载war文件并执行某些代码?您有几个选项 如果您正在利用CDI,您可以为@Observes@Initialized(ApplicationScoped.class)对象o添加一个观察者方法 如果您正在利用ejb,您可以使用执行初始化的@PostConstruct方法,使用@javax.ejb.Singleton@javax.ejb.Startup。下面是两个示例实现 // using a CDI object @ApplicationScoped publi

有没有办法检测Wildfly何时成功加载war文件并执行某些代码?

您有几个选项

如果您正在利用CDI,您可以为
@Observes@Initialized(ApplicationScoped.class)对象o添加一个观察者方法
如果您正在利用ejb,您可以使用执行初始化的
@PostConstruct
方法,使用
@javax.ejb.Singleton@javax.ejb.Startup
。下面是两个示例实现

// using a CDI object
@ApplicationScoped
public class SomeStartupBean {
    public void initOnStartup(@Observes @Initialized(ApplicationScoped.class) Object obj) {
        // do your start up logic here
    }
}


你有几个选择

如果您正在利用CDI,您可以为
@Observes@Initialized(ApplicationScoped.class)对象o添加一个观察者方法
如果您正在利用ejb,您可以使用执行初始化的
@PostConstruct
方法,使用
@javax.ejb.Singleton@javax.ejb.Startup
。下面是两个示例实现

// using a CDI object
@ApplicationScoped
public class SomeStartupBean {
    public void initOnStartup(@Observes @Initialized(ApplicationScoped.class) Object obj) {
        // do your start up logic here
    }
}


您可以使用EJB。这将在成功部署应用程序时执行。

您可以使用EJB。这将在成功部署应用程序时执行。

在本例中,我有一个RESTeasy servlet。我想触发一些逻辑,在servlet可用时将当前环境转储到日志文件中。我正在为ContextRefreshedEvent寻找类似Spring的ApplicationListener的东西。理想情况下,我可以使它成为一个独立的类,可以包含在任何war文件中。我想做的是创建一个可以简单地包含在war文件中的类环境记录器。@Observes@Initialized(ServletName)注释在这样的类中位于何处?再次感谢。我用您可以尝试的具体实现更新了我的答案。同样值得注意的是,您仍然可以使用servlet上下文侦听器之类的东西。但是,当使用RESTAPI时,它们没有什么问题,这将是您对web层的唯一依赖。这提供了更好的隔离。如果您正在处理一个webapp,初始化中的
对象
是一个servlet上下文。不,这很糟糕。我建议使用两种不同的方法
@PostConstruct
特别地不应该接受参数。在这种情况下,我有一个RESTeasy servlet。我想触发一些逻辑,在servlet可用时将当前环境转储到日志文件中。我正在为ContextRefreshedEvent寻找类似Spring的ApplicationListener的东西。理想情况下,我可以使它成为一个独立的类,可以包含在任何war文件中。我想做的是创建一个可以简单地包含在war文件中的类环境记录器。@Observes@Initialized(ServletName)注释在这样的类中位于何处?再次感谢。我用您可以尝试的具体实现更新了我的答案。同样值得注意的是,您仍然可以使用servlet上下文侦听器之类的东西。但是,当使用RESTAPI时,它们没有什么问题,这将是您对web层的唯一依赖。这提供了更好的隔离。如果您正在处理一个webapp,初始化中的
对象
是一个servlet上下文。不,这很糟糕。我建议使用两种不同的方法
@PostConstruct
尤其不应采用参数。