2012-04-04 34 views
0

我有一個客戶端/服務器應用程序,它通過JNDI/RMI/IIOP在客戶端使用一些Glassfish客戶端代碼(不作爲Glassfish客戶端打包)和服務器端Glassfish實例進行通信。如何通過互聯網調試RMI/IIOP?

我有一些Glassfish多模式腳本,用於確保我在任何機器上創建的域完全相同並正確配置。

在本地網絡上使用該腳本,我已經確保我可以從我的機器上的客戶端代碼訪問遠程Glassfish服務器實例(這是一個相當合理的猜測,但是我傾向於測試所有事情,我並不完全肯定)。

下一步是讓客戶端/服務器應用程序工作(我應該說「通過」)互聯網:與我的公司局域網中的客戶端代碼(換句話說,在我的機器上)和我的服務器代碼在亞馬遜VM運行我的Glassfish服務器。出於某些原因,遠程Glassfish正在Windows VM上運行。

很明顯(我問這個問題,你可以放心地猜測通過互聯網測試是行不通的。你說的對。

因此,有更多的猜測,我在我的機器上啓動SmartSniffer都和上服務器。

在我的機器,我只能看到一個TCP數據包會到該服務器實例(並沒有什麼回來)。

在服務器實例中,我可以看到一個數據包進入(客戶端查詢)和一個數據包退出(服務器答案)。服務器答案如下所示:

[4/4/2012 11:47:13 AM:917] GIOP .......(................ NameService ... .._ is_a ................... NEO ................ª.......(IDL: omg.org/SendingContext/CodeBase:1.0 ............ñ........172.27.63.145.Ô2....¯«Ë........ e ........................... ................... 。 .. ........... & ...............(IDL:omg.org/CosNaming/NamingContext:1.0。

那172.27.63.145地址就是我在本地網中的IP地址。

[4/4/2012 11:47:13 AM:917] GIOP ....... 2 ............ NEO ...... .......... 0 .......(IDL:omg.org/SendingContext/CodeBase:1.0 ............ô....... .46.137.114。###。'5 ....¯«Ë........ d ....................... ... ................... ... ........... & .......... 。... ... | ............... $ ... ... f ............ 10.241.42。###。 「6。@ ........克..............克........默認............. ......克............... + IDL:omg.org/CosNaming/NamingContextExt:1.0 .............¢.. ...... 10.241.42.208.'5 ...M¯«Ë.... ... d ... S1AS-ORB ............ RootPOA ... 。TNameService ............................... ................ ... ... ........... & ......

這46.137.114 ###,是我的亞馬遜VM的外部之一,10.241.42。# ##是亞馬遜神奇虛擬服務器中的內部IP。

所以看來服務器正在回答,不是嗎?

但是這個答案從來沒有找到我的網絡中我的機器的方式。

那麼......我該如何檢查它丟失的位置?似乎像包嗅探器已經完成了它的工作,但我現在可以做什麼?

注意這個問題是澄清的"How to Connect a glassfish client to glassfish server over NATs?"

回答

0

也許愚蠢的問題,但您的Amazon EC2實例配置了開放的通訊協議工作所需的所有端口?您可以在EC2->安全組下的AWS控制檯中查看您的實例分配給的安全組中已配置的開放端口。