我知道這是什麼repetead但無法找到解決我的問題......與Amazon EC2奇怪的RMI連接異常
我想實現一個模擬的分佈式系統,我掙扎了很多與連接通過RMI。
我有三個不同的組件,網格調度器,資源管理器和客戶端。他們三人互動。其行爲如下:用戶在註冊表中查找資源管理器引用,然後調用遠程方法,該方法將調用網格調度器中的另一個方法,並最終調用用戶中的一個方法來提供結果。如果我在本地執行整個系統,一切都按預期工作。
現在的事情是,我正試圖將其中一個資源管理器節點移動到公共地址爲A.A.A.A的EC2 Amazon實例,其餘系統將在公共地址爲B.B.B.B的筆記本電腦上本地運行。我允許安全組策略上的端口1099 TCP/UDP上的TCP流量,還設置java.security.policy以在兩臺機器中授予所有權限。要在每個組件創建註冊表我做的:
LocateRegistry.createRegistry(1099);
隨後的部件將由
Naming.lookup(url)
現在發現自己,用戶將查找的IP地址AAAA /組件亞馬遜實例的公共地址。我可以檢查它是否有時獲取引用,有時它不會(NotBoundException)。然而,當它確實得到的參考,並試圖調用我得到的方法:
java.rmi.ConnectException: Connection refused to host: INTERNAL IP OF AMAZON INSTANCE nested exception is: java.net.ConnectException: Connection timed out: connec.
我做錯了什麼?我試圖設置屬性
java.rmi.server.hostname
對於Amazon實例中的公共ip A.A.A.A,我得到了相同的結果。我也嘗試在我的筆記本上做同樣的公共地址BBBB,並且我得到了「連接拒絕IP BBBB不是本地主機地址」
我也在我的houe的路由器上打開端口,以防萬一這是問題,但它似乎並不是...
我錯過了什麼嗎?
在此先感謝。
請參閱RMI FAQ項目A.1。 – EJP