2012-03-27 61 views
0

我需要多次部署相同的EJB。每個EJB都有自己的上下文名稱,將其作爲一個獨立的應用程序在Glassfish上進行標識。每個EJB都有自己的持久性單元等。部署多個具有不同持久性的相同EJB

然後我需要從另一個應用程序連接到這些EJB中的每一個。 我不確定如何指定要連接到哪個EJB。

我已閱讀關於遠程接口,但我不知道如何指定和注入所需的正確的EJB。

回答

0

不能完全確定,但據我所知,你很可能做到這一點,如果你對bean.Something不同的接口或JNDI名稱像下面可能工作..

import javax.ejb.Remote; 
@Remote 
public interface HelloWorld{ 
    public void sayHello(String name); 
} 


import javax.ejb.Stateless; 
@Stateless(mappedName=」ejb/HelloWorld」) 
public class HelloWorldBean implements HelloWord { 
    public void sayHello(String name) { 
     System.out.println(「First .Hello 」 + name + 」 It’s Working!」); 
    } 
} 


import javax.ejb.Stateless; 
@Stateless(mappedName=」ejb/HelloWorld1」) 
public class HelloWorldBean implements HelloWorld { 
    public void sayHello(String name) { 
     System.out.println(「Second Hello 」 + name + 」 It’s Working!」); 
    } 
} 
+0

這需要我更新每當我需要做一個新的部署時,這個bean。我能想到的唯一的其他解決方案是使用Web服務。通過這種方式,我可以在不同的URL上部署相同的Web服務,然後在我的客戶端中調用正確的URL。 如果我是正確的,這將比使用遠程接口花費更多。但我不確定。 – likenoother 2012-03-27 11:54:56

+0

是的,我的解決方案將要求您爲每個部署更新bean,但是您可以將更改保存到類中,並且只需將jndi名稱移至部署描述符而不是將其與@Stateless註釋一起使用即可更新部署描述符。像這樣的東西 - 看我的下一個評論。 – Prashanth 2012-03-27 13:11:28

+0

' HelloWorldBean EJB/HelloWorld的 com.xyz.HelloWorldBean <持久性上下文REF> <持久性上下文REF-名稱> EM /數據庫 EntityProviderName<! - 在persistence.xml中定義 - > 事務 ' – Prashanth 2012-03-27 13:13:10