一个简单的问题:当我在给定的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注释的接口的名称。

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

希望这对您有所帮助。

09-11 17:25