RMI全部的宗旨就是盡可能簡化遠程對象的使用。我們在客戶程序中要做的唯一一件額外的事情就是查找並從服務器取回遠程接口。自此以後,剩下的事情就是普通的Java編程:將消息發給對象。下面是使用PerfectTime的程序:
//: DisplayPerfectTime.java
// Uses remote object PerfectTime
package c15.ptime;
import java.rmi.*;
import java.rmi.registry.*;
public class DisplayPerfectTime {
public static void main(String[] args) {
System.setSecurityManager(
new RMISecurityManager());
try {
PerfectTimeI t =
(PerfectTimeI)Naming.lookup(
"//colossus:2005/PerfectTime");
for(int i = 0; i < 10; i++)
System.out.println("Perfect time = " +
t.getPerfectTime());
} catch(Exception e) {
e.printStackTrace();
}
}
} ///:~
ID字串與那個用Naming注冊對象的那個字串是相同的,第一部分指出了URL和端口號。由於我們准備使用一個URL,所以也可以指定因特網上的一台機器。
從Naming.lookup()返回的必須造型到遠程接口,而不是到類。若換用類,會得到一個違例提示。
在下述方法調用中:
t.getPerfectTime( )
我們可看到一旦獲得遠程對象的句柄,用它進行的編程與用本地對象的編程是非常相似(僅有一個區別:遠程方法會“擲”出一個RemoteException違例)。