[java]RMI用戶端在伺服器雙網卡或者多網卡情況下無法串連問題

來源:互聯網
上載者:User
出錯堆棧:
org.springframework.remoting.RemoteConnectFailureException: Cannot connect to remote service [rmi://192.168.2.61/Service]; nested exception is java.rmi.ConnectException: Connection refused to host: 192.168.7.11; nested exception is:
 java.net.ConnectException: Connection timed out: connect

很奇怪,rmi訪問的url是對的,但是後續的訪問得到的IP卻是雙網卡中的另外一個無法訪問的。

在本機做個簡單實驗:
  System.out.println(UnicastRemoteObject.exportObject(new Remote(){},0));
輸出:
Proxy[Remote,RemoteObjectInvocationHandler[UnicastRef [liveRef: [endpoint:[192.168.2.3:2339](local),objID:[0]]]]]
說明對象在沒有註冊出去的時候其IP就已經決定,綁定出去以後用戶端就按照這個IP按圖索驥。Server端有兩個網卡,亂找一個就Over了。
這種方式對分布式對象註冊很有用,但是碰到多IP的情況下就比較弱智了。sun的faq上給出一個簡單答案:
http://java.sun.com/j2se/1.5.0/docs/guide/rmi/faq.html#netmultihomed

一句話:
  System.setProperty("java.rmi.server.hostname","192.168.2.3");//建議從設定檔載入。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.