2012-05-01 140 views
3

简单的问题:当我在给定的应用服务器上部署EJB时,然后我想从部署在不同Application Server上的EJB(当然是远程)使用它时,我怎么能在第二个EJB中注入一个远程EJB实例?通过@EJB注释注入远程EJB

应该是这样的:

@Stateless 
public class EJBClient { 

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

    ... 
} 

但我想知道的是:我怎么指定第二个做的第一应用服务器的JNDI属性(IP等)查找?

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

+2

一看这个:http://stackoverflow.com/questions/7839207/does-ejb-annotation-work-for-remote-call/7842345#7842345 –

+0

谢谢,我简直不敢相信...:S – edutesoy

+1

我确实认为一些应用程序服务器有这些东西的专有解决方案。你应该谷歌,因为我刚刚听到(afair)关于Weblogic和他们的方式注入远程bean的方式。 –

回答

0

那么首先我想你的代码有点混乱。 你不应该使用@Stateless注解的静态类。

第二个为什么你打电话给你的EJB客户端,然后用@Stateless注释它?

要回答你的问题,查找方法是依赖于应用程序服务器的。 在JBoss中的EJB名称由

上下文做出/ EJB_Name /远程

文意是你部署了EJB的EJB_Name是你的界面与@Remote注释的名字你的EAR的名字。

在查找过程中,您应该在其他服务器所在的属性中指定。 希望这对你有所帮助。