簡體   English   中英

如何通過 inte.net 調試 RMI/IIOP?

[英]how to debug RMI/IIOP through internet?

我有一個客戶端/服務器應用程序,它通過 JNDI/RMI/IIOP 在客戶端使用一些 Glassfish 客戶端代碼(未打包為 Glassfish 客戶端)並在服務器端使用 Glassfish 實例進行通信。

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

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

下一步是讓客戶端/服務器應用程序在 inte.net 上工作(我應該說“通過”):我的客戶端代碼在我公司的 LAN 中(換句話說在我的機器上),我的服務器代碼在運行的 Amazon VM 上我的 Glassfish 服務器。 由於某些原因,遠程 Glassfish 在 Windows VM 上運行。

顯然(當我問這個問題時,您可以放心地猜測通過 inte.net 測試不起作用。你是對的。

因此,為了進行更多猜測,我在我的機器和服務器上啟動了SmartSniffer

在我的機器上,我只能看到一個 TCP 數據包發送到該服務器實例(沒有任何返回)。

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

[4/4/2012 11:47:13 AM:917] GIOP ......(................NameService....._is_a... ............NEO................ª......(IDL:omg.org/SendingContext/代碼庫:1.0.........n.......172.27.63.145.Ô2....¯«È.........e...... ……………………………… .....&......(IDL:omg.org/CosNaming/NamingContext:1.0.

那個 172.27.63.145 地址是我在 local.network 中的 IP。

[2012 年 4 月 4 日上午 11:47:13:917] GIOP......2......NEO...... ...0 ......(IDL:omg.org/SendingContext/CodeBase:1.0............46.137.114.## #.'5....¯«È.......d...................... ... .....................................&................................|... ............$... ...f......10.241.42.###.'6.@...... ..g......g......默認.................g...... ............:+IDL.omg:org/CosNaming/NamingContextExt.1.0 .......................................10.241.42.208。 '5...M¯«È.... ...d... S1AS-ORB......RootPOA.... TNameService...... ……………………………… ......&......

那個 46.137.114.### 是我的 Amazon VM 的外部之一,而 10.241.42.### 是它在亞馬遜神奇虛擬服務器中的內部 IP。

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

但是這個答案永遠不會在 my.network 中找到我的機器。

那么...我如何檢查它丟失的位置? 似乎數據包嗅探器已經完成了它的工作,但我現在能做什么呢?

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM