2017-03-05 136 views
0

我創建了一個RMI服務,其中包括一些方法從另一臺計算機調用。服務器和客戶端有有效的IP地址,當我嘗試在客戶端運行程序時,我得到一個connection refused異常。連接在java中拒絕錯誤RMI

當我更改IP地址爲localhost,將解決我的問題,但是當我嘗試遠程到另一個IP地址發生同樣的錯誤。

+0

[標籤:網頁套接字]無關,用它做。 – EJP

+0

@Micho不要對沒有引用的文本使用引號格式。 – EJP

回答

-1

嘗試使用此之前寄存器RMI

System.setProperty( 「java.rmi.server.hostname」,REGISTRY_HOST);

這裏REGISTRY_HOST是IP地址。

+0

您需要在「註冊RMI」之前做相當的工作。如果註冊表主機與服務器主機不同,則它是錯誤的主機:您應該使用服務器主機。如果它們是相同的,您應該仍然使用服務器主機IP。 – EJP

0

有三種情況的RMI '連接被拒絕':

  1. 當調用bind()/rebind()/unbind()。註冊表不是在您使用的host:port或URL上啓動的。
  2. 當調用lookup()。如果(1)成功,您嘗試查找錯誤的註冊表。註冊表通常運行在與服務器相同的主機上。
  3. 當調用一個遠程方法。這意味着在導出任何遠程對象之前,您需要在服務器JVM上設置java.rmi.server.hostname。爲什麼請參閱RMI FAQ項目A.1。更好的解決方法是修復DNS或hosts文件。