2015-07-02 54 views
1

是否每個遠程對象都必須在rmiregistry中註冊?我們可以從rmiregistry獲取一個對象,調用它的方法,並因此獲得一個引用(而不是序列化副本)到另一個遠程對象,而這個遠程對象在rmiregistry中沒有註冊?RMI - 遠程對象,rmiregistry

回答

1

是不是每個遠程對象都必須在rmiregistry中註冊?

我們可以得到在其上從一個rmiregistry的對象,呼叫的方法,結果得到的參考(未序列化副本)到另一個遠程對象,這是不registred在rmir​​egistry?

是。

遠程方法可以返回遠程對象。註冊管理機構只是一個引導機制,可以幫助您開始,即爲您提供初始存根。之後,你可以做任何你喜歡的事情。

+0

感謝您的回覆,但我不明白「遠程方法可以返回遠程對象」。如何在rmiregistry沒有註冊的情況下創建一個遠程對象?如果我們使用導出方法將其設置爲遠程,它會自動在rmiregistry中註冊 – Yeynno

+0

不,它不是。導出只是導出遠程對象。它是在註冊表中註冊對象的'bind()/ rebind()'。要返回一個遠程對象,你不需要任何超過一個return語句,提供一個導出的遠程對象作爲值。如果對象擴展了'UnicastRemoteObject',它可以像'return new MyRemoteObject();'一樣簡單。 – EJP

+0

對,我現在明白了。謝謝 – Yeynno