我編寫了一個服務器客戶端rmi應用程序,我正在使用MacOsX和Ubuntu筆記本電腦來測試它們。在ubuntu筆記本電腦上啓動RMI服務器
當我在MacOsX上啓動rmiregistry和服務器時,我可以在netstat中看到端口1099已打開並使用的詳細信息。 然後如果我嘗試使用RMI,使用Ubuntu筆記本電腦的客戶端 - 它工作正常。
但是,當我以其他方式嘗試: 在Ubuntu上啓動rmiregistry和服務器時,我看不到有關1099端口的netstat中的任何細節。 ,並使用從MacOS的客戶端的時候,我無法連接到它,並收到下面的異常:
Received Exception:
java.rmi.ConnectException: Connection refused to host: 127.0.1.1; nested exception is:
java.net.ConnectException: Operation timed out
後Naming.lookup發生(這樣查找去哪家好發生,但RMI本身不)。
看起來Ubuntu上的rmiregistry正在重定向我的客戶端來連接127.0.1.1,而不是他拒絕的服務器的外部IP。
這可能是什麼原因?
我對你的java-arguments有點困惑,對我有用,可能你的意思是將'-Djava.rmi.server.hostname = yourLocalIP'添加到vm參數中。 – luk2302 2015-09-28 14:17:46