简单的问题:当我在给定的应用服务器上部署一个 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/