通过@EJB注解注入远程EJB

4

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

应该像这样:

 @Stateless
 public class EJBClient {

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

   ... 
 }

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

如果没有标准的方法来实现这一点,那么这些服务器是JBoss。


2
请看这个链接:https://dev59.com/xlzUa4cB1Zd3GeqP3GxY#7842345 - Piotr Nowicki
谢谢,我几乎不敢相信... :S - Mr.Eddart
1
我确实相信一些应用服务器有针对这类问题的专有解决方案。你应该谷歌一下,因为我只是听说过Weblogic和他们注入远程bean的方法。(afair) - Piotr Nowicki
1个回答

0
首先,我想你的代码有点混乱。你不应该使用一个带有@Stateless注解的静态类。
其次,为什么你要将你的类命名为EJBClient,然后再用@Stateless进行注解呢?
回答你的问题,查找方法取决于应用服务器。在Jboss中,EJB名称由Context/EJB_Name/remote组成。其中,Context是你部署EJB的EAR名称,EJB_Name是你的接口名称,带有@Remote注解。
在查找过程中,你应该在属性中指定其他服务器的位置。
希望这能帮到你。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接