2016-03-01 63 views
0

我有兩臺筆記本電腦。兩者都通過家庭Wi-Fi路由器連接到互聯網。嘗試從獨立的非EE Java客戶端訪問遠程EJB

laptop1:測試Java企業版7個應用程序,使用NetBeans 8和GlassFish 4

laptop2:測試Java標準版7個應用程序,使用Eclipse火星

這裏是我做了筆記本電腦1:

  1. 打包一個簡單的EJB組件和庫co將EJB的遠程接口綁定到EAR中。

  2. 在GlassFish上成功部署了它。

  3. 將企業應用程序客戶端和包含EJB遠程接口的相同庫打包到模塊中,並將其單獨部署在GlassFish上。

  4. 這兩個應用程序(EAR和客戶端模塊)運行良好,客戶端可以使用依賴注入(@EJB)調用ejb組件的方法。

這裏就是我面臨着同時做一些涉及兩個laptop1和laptop2問題:

我想以調用方法來創建laptop2獨立非EE客戶端位於laptop1上的遠程EJB組件上。我正在關注此文檔 https://glassfish.java.net/docs/4.0/application-development-guide.pdf

該文檔中編寫的步驟如下。請參閱下面的嵌入式問題。

STEP1

InitialContext ctx = new InitialContext();

BeanRemote bean =(BeanRemote)ctx.lookup(「com.acme.BeanRemote」);

它看起來不像我的JNDI。 java:global在哪裏?

STEP2

複製作爲安裝/ LIB/GF-client.jar中文件到客戶機,並且包括它在客戶端上的類路徑。 我該怎麼做,我在哪裏可以找到客戶端的類路徑?

如果在客戶端計算機上沒有安裝GlassFish服務器(廢話!),你還必須在爲安裝/ modules目錄複製到客戶端機器及其 目錄結構相對於作爲安裝維護/lib/gf-client.jar文件。 相對於類路徑嗎?

STEP3

設置以下系統屬性的JVM啓動選項:

-Dorg.omg.CORBA.ORBInitialHost = $ {} ORBhost

-Dorg.omg.CORBA.ORBInitialPort = $ {ORBport}

此處ORBhost是GlassFish服務器主機名,ORBport是ORB端口 數字(默認爲3700,用於默認服務器實例,名爲server)。

如何在客戶端設置JVM的上述啓動選項?

STEP4

確保etc/hosts文件在客戶端計算機上的文件映射GlassFish服務器的主機名和外部IP地址。 在每檯筆記本電腦上的這個文件中,我是否需要爲計算機名稱標記一個完全合格的域名,並將其放在由Wi-Fi網絡分配的IP旁邊?

+0

你寧願換你的EJB,我們後面的Web服務,並獲得其使用HTTP API,你不應該... –

+0

問題是遠程訪問,而不是EJB的本質。 – softwarelover

+0

這個網站有什麼問題?沒有一個有用的答案。我經歷了很多,仔細地總結了這裏的線條。\ – softwarelover

回答

0

試試這個

String ejbConnectionName = String.format("ejb:%s/%s!%s", appModuleName, beanName, remoteBeanName);    
BeanRemote bean = (BeanRemote) context.lookup(ejbConnectionName);