一个简单的问题:当我在给定的Application Server上部署EJB,然后想从不同的Application Server上部署的EJB中使用它时(当然是远程地),如何在第二个EJB内注入前一个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
注释的接口的名称。
在查找过程中,您应该在属性中指定其他服务器的位置。
希望这对您有所帮助。