java - 通过 @EJB 注释注入(inject)远程 EJB

标签 java jakarta-ee ejb ejb-3.0

简单的问题:当我在给定的应用服务器上部署一个 EJB,然后我想从部署在不同应用服务器上的 EJB 使用它(当然是远程的),我如何注入(inject)前一个 EJB 的远程实例在第二个里面?

应该是这样的:

 @Stateless
 public class EJBClient {

   @EJB("myRemoteBean")
   static private MyBeanRemote bean;

   ... 
 }

但我想知道的是:如何指定第一个应用程序服务器的 JNDI 属性(IP 等)以便第二个应用程序服务器进行查找?

如果没有标准的方法来做到这一点,服务器就是 JBoss。

最佳答案

嗯,首先我猜你的代码有点困惑。 您不应该使用用 @Stateless 注释的静态类。

第二,为什么要调用类 EJBClient 然后用 @Stateless 注释它?

要回答您的问题,查找方法取决于应用程序服务器。 在 Jboss 中,EJB 名称由 Context/EJB_Name/remote 组成。 Context 是部署 EJB 的 EAR 名称,EJB_Name 是用 @Remote 注释的接口(interface)名称。

在查找过程中,您应该在属性中指定其他服务器所在的位置。

希望对你有帮助。

关于java - 通过 @EJB 注释注入(inject)远程 EJB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10399163/

相关文章:

java - 如何修复 “This web container has not yet been started” + javax.ejb.EJBException

Java 正则表达式 - 一种用于计算匹配项的代码

Java 8 Lambda 不工作?

servlets - 带有安全过滤器和依赖注入(inject)的 jax-rs 1.1,如何实现这一点?

java - 部署war文件解析错误

java - 如何从 EJB 中获取 Web 资源的路径?

java - EJB 检索重复行

java - java中多消费者单生产者缓存的实现

java - 调试 jetty 应用程序

java - 如何通过 JMS API 设置 MQMD ApplicationID 字段?