1. Name
RMI是Romote Method Invocation的縮寫,就是遠程方法調用。
2. Intent
具體的說,就是能夠通過這種機制,實現在一個JVM上調用另一個JVM上的Java對象的方法。
3. Structure
(1)RMI Interface and Class
第一步:繼承了Remote的interface
定義一個繼承了Remote的interface,命名為TestRMIService。在其中有我們期望在Client端調用的方法testHello(),注意要拋出RemoteException。
第二步:繼承了UnicastRemoteObject且實現了TestRMIService的class
定義一個繼承了UnicastRemoteObject且實現了TestRMIService的class,命名為TestRMIServiceImpl。在其中實現testHello方法。
(2)RMI Server
第一步:
定義一個class,命名為TestServer,其中有main方法。在main方法中實例化TestRMIService一個遠程對象,命名為testRMI。
第二步:
創建一個Registry,並向遠程對象testRMI注冊,注冊名為“rmi://locahost:1234/testrmi”。
(3)RMI Client
第一步:
定義一個class,命名為TestClient,其中有main方法。查詢注冊
第二步:
查詢注冊名為“rmi://locahost:1234/testrmi”的TestRMIService遠程對象,查詢結果為testRMI。
第三步:
調用遠程對象testRMI的方法testHello。
4. Sample Code
(1)TestRMIService
(2)TestRMIServiceImpl