2013-04-04 47 views
0

我有一個小的EAR-JEE6-應用程序,它由3個模塊(EAR + EJB + WEB)組成。 共有3個文件:ear,jar和war - ear-file包含jar和war文件。我想在兩臺不同的機器(IP-1和IP-2)上設置2個glassfish服務器,我想在IP-1上部署EJB(jar文件),而在WEB(戰爭文件)在IP-2上。部署到Glassfish的多個實例,分解我的EAR

我的Web項目有一個servlet,它依賴於EJB項目中的無狀態bean,注入。我無法理解這一點。

Web項目如何在EJB項目中找到無狀態bean? 我需要某種查詢服務,這是'全球'(我可以輸入所有IP地址) - 只是在這裏猜測。

這可能嗎?

回答

1

您可以使用Java命名和目錄接口(JNDI)執行此操作。

你必須手動查找您的豆在這樣的方式:

Context ic = new InitialContext(); 
Object o = ic.lookup("java:comp/env/ejb/Foo"); 

更詳細一點可以在這裏找到:Accessing EJB Components in a Remote GlassFish Serverthis stackoverflow question

+0

Thanks.But如果我將這些行放在Servlet中,如果它部署在另一個IP地址上,它將如何找到'java:comp/env/ejb/Foo'? – InKi 2013-04-04 10:18:47

+0

try { InitialContext context = new InitialContext(); CapitalBeanRemote bean =(CapitalBeanRemote)context.lookup( 「java:global/RemoteEJBModule/CapitalBean」); messageTextField.setText(bean.getCapital(「Japan」)); context.close(); (例外e){ e.printStackTrace(); } Web項目必須依賴於EJB項目,因爲CapitalBeanRemote是EJB項目的一部分? – InKi 2013-04-04 10:25:29