java - EJB 依赖于另一个 EJB?

标签 java ejb jboss7.x jndi ejb-3.1

我正在使用 Jboss 7,并且有两个单独的部署,它们都包含单例 EJB。

我需要一个 EJB 才能访问另一个 EJB 并能够调用其方法,但是,当应用程序服务器启动并尝试部署它们时,它似乎无法保证哪个 EJB 首先启动(即使您将其中之一设置为另一个的Dependencies:deployment.xxx.jar)。

我似乎无法使用 @DependsOn 注释,因为这命名了一个特定的 EJB,而该 EJB 似乎无法跨单独的部署执行,所以我只能使用 @ EJB(lookup=JNDI_STRING) 作为我唯一的选择。然而,这种注入(inject)似乎并不能保证您所依赖的 EJB 在查找发生时实际上会启动,从而导致 NPE。显然,如果您只是使用 @PostContruct 方法中的 InitialContext 通过 JNDI 查找第二个 EJB,也会发生这种情况。

因此,我基本上需要保证一个部署中的一个 EJB 将在同一应用程序服务器上的另一个部署中的另一个 EJB 之前启动。我认为,如果我从设置为启动时运行的 HttpServlet 延迟初始化依赖的 EJB,这可能会起作用,但这并不理想。

也许我缺少一些明智的方法来做到这一点?我真的不想在 EJB 启动之前轮询它。

最佳答案

可以在jboss-deployment-struct.xml中配置

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
   <deployment>
       <dependencies>
           <module name="deployment.app1.ear" />
       </dependencies>
   </deployment>
</jboss-deployment-structure>

来源mastertheboss

关于java - EJB 依赖于另一个 EJB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14463042/

相关文章:

java - 无法在Glassfish服务器的控制台上打印Date和String对象的值

java - Spring JPA : OneToMany List update results in duplicate entries

java - 当 ie7 和 ie8 说 "to help protect your bla bla"时,我怎么能意识到?因为它阻止我的 servlet 将字节数组作为文件下载

java - fork /加入 JavaEE 应用程序?

java - 当我想将 EJB 公开给同一应用程序服务器上的不同应用程序时,是否需要使用 @Remote?

java - 如何将任何InputStream发送到JMS队列?

java - 如何在Java中更改图表比例

java - @Test(expected = Exception.class) 或 Assertions.assertThrows(...) 或assertThatThrownBy(..) 推荐哪一个?

java - ModCluster 配置在负载已满时丢弃请求

jboss7.x - JBAS010153 : Node identifier property is set to the default value. 请确保它是唯一的