RMI:Remote Method Invoke 遠程方法調用(類比webservice) 介紹:
RMI:計算機之間通過網絡實現類對象調用的一種通訊機制 通過這種機制一臺計算機上的對象可以直接調用另外一臺計算機 上的對象獲取遠程數據
應用:不同類型的業務系統間數據通信Webservice/AXIS使用更多一點,RMI在RPC類型的框架應用應該比較多
步驟:
1:創建遠程接口:接口文件(序列化) 2:遠程接口的實現:Service文件 3:RMI服務端注冊,開啟服務 4:RMI代理端通過RMI查詢到服務端,建立聯系,通過接口調用遠程方法
Service接口: 定義服務方法
package com.zhiwei.rmi;import java.rmi.Remote;import java.rmi.RemoteException;public interface ServiceInterface extends Remote{ public String sayHello() throws RemoteException;}RMI服務端
package com.zhiwei.rmi;import java.rmi.Naming;import java.rmi.RemoteException;import java.rmi.registry.LocateRegistry;import java.rmi.server.UnicastRemoteObject;public class RemoteServer extends UnicastRemoteObject implements ServiceInterface{ PRivate static final long serialVersionUID = 1L; protected RemoteServer() throws RemoteException { super(); } @Override public String sayHello() throws RemoteException { return "Hello World!"; } public static void main(String[] args) throws Exception { ServiceInterface service = new RemoteServer(); LocateRegistry.createRegistry(8888); Naming.rebind("rmi://127.0.0.1:8888/RemoteHello", service); }}RMI客戶端:
package com.zhiwei.rmi;import java.rmi.Naming;import java.rmi.NotBoundException;import java.rmi.RemoteException;public class RemoteClient { public static void main(String[] args) throws Exception, RemoteException, NotBoundException { ServiceInterface service = (ServiceInterface) Naming.lookup("rmi://127.0.0.1:8888/RemoteHello"); String responseMeg = service.sayHello(); System.out.println(responseMeg); }}結果: 
新聞熱點
疑難解答