2014-06-28 100 views
0

我正在使用WildFly 8.1應用程序服務器,需要獲取位於遠程GlassFish服務器上的EJB。我有什麼樣的選擇?我在想的是手動創建InitialContext,提供必要的屬性,如GlassFish地址等。有沒有更好的解決方案?我可以通過@Resource這樣的註釋來獲得這個EJB嗎?資源注入和解決方案

回答

0

我想這應該回答你的問題:

客戶端的企業Bean實現遠程業務 接口是通過兩種依賴注入或JNDI查找 完成訪問。

爲了獲得通過依賴注入一個 企業bean的遠程業務接口的引用,使用自javax.ejb.EJB 註釋並指定企業bean的遠程業務接口 名:

@EJB實施例示例;爲了獲得通過JNDI查找企業bean的遠程業務 接口的引用,使用 javax.naming.InitialContext中界面的查找方法:

ExampleRemote示例=(ExampleRemote) InitialContext.lookup(「Java的:全球/對myApp/ExampleRemote「);

http://docs.oracle.com/javaee/6/tutorial/doc/gipjf.html

0

除了第一個答案,需要注意的是遠程EJB 必須實施@Remote接口是很重要的:

@Remote 
    public interface RemoteEJB 

鑑於遠程EJB上述實施,您可以在您的遠程客戶端中只有以下內容:

@EJB 
    RemoteEJB remoteEJB; 

我可以通過類似@Resource的註釋來獲得此EJB嗎?

我不相信你可以。 @Resource最適合用於輔助工件,如javax.sql.DataSource s,JMS消息隊列和JavaMail會話。


提示:使用InitialContext在JNDI查找更加昂貴。 According to this answer by a member of the Java EE Expert Group,使用SessionContext可以更好地查找上下文資源。

相關問題