java - 在 JBoss 7 部署结束时执行操作

标签 java java-ee-6 jboss7.x jboss-weld

我们有一个应用程序需要在部署结束时(在 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/

相关文章:

java - 如果稍后要初始化为已知字符串,如何确定将 JLabel 设置为正确的大小

java - Log4j 异步附加器的使用?

java - 通过扩展AppenderSkeleton来编写自己的appender?

Java Servlet、JAX-RS - 在基于表单的身份验证工作时遇到问题

jboss7.x - jboss 7 Final中standalone\tmp\vfs下的内容是什么

java - 给定 2 个数字,构建一个包含其中所有数字的数组

java - org.simpleframework.xml.core.PersistenceException : Constructor not matched for class A

java - 找不到包或没有 package-info.java

linux - JBoss 7 中的 UDP 连接在哪里配置?

java - Junit ErrorCollector 使用 - 失败不显示