我们有一个应用程序需要在部署结束时(在 JBoss 7.1.0 实例中)进行一些初始化,因为只有这样所有必需的服务才可用(其中有相当多)。
我们尝试过的一种方法是:
我们有一个带有@Startup注释的单例服务,但到目前为止我们还没有成功地告诉JBoss最后创建实例而没有太多麻烦。
我们可以使用@DependsOn
,但我们必须维护一个不断增长且已经很大的依赖项列表,因此我们宁愿只将其作为最后的手段。
在过去(JBoss 4 和 5),可以定义对应用程序的依赖关系(例如 @Depends("myapp.ear")
),这正是我们所需要的。
从 JBoss 7 开始,事情已经发生了变化,但我认为仍然有办法做到这一点。
另一种方法是尝试创建我们自己的 JBoss 子系统,该子系统在所有其他子系统启动后调用,但我们无法找到一种方法来等待其他子系统完成后再执行我们需要的操作。
我们还可以考虑哪些其他选择?
最佳答案
您可以将使用 @Startup
注解的类放入不同的 EAR 或更好的 WAR 中。我认为,WAR 默认情况下会在任何 EAR 之后部署,而无需配置任何内容。
在启动类中,您只需调用实际的初始化,该初始化是通过 myapp.ear
与应用程序的其余部分一起部署的。调用是通过 EJB 本地或远程接口(interface)完成的。
关于java - 在 JBoss 7 部署结束时执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10829370/