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); }}结果:
新闻热点
疑难解答