目录
3.1 [推荐]代码启动注册表+存根为代理+远程类继承UnicastRemoteObject
3.2 Jdk工具启动注册表+Jdk工具生成存根类+UnicastRemoteObject导出
1. RMI介绍
RMI是Remote Method Invocation的缩写,意为远程方法调用,实现了Java夸虚拟机的方法调用;
1.1 RMI概念
把Java对象中的方法看作提供某种能力的服务,RMI远程方法调用就涉及服务提供方和服务使用方;
服务提供方和使用方的关系其实就是服务器和客户端的关系,服务器和客户端是两个独立的进程;
RMI中注册表作为服务器和客户端的桥梁,服务器将提供的服务绑定到注册表,客户端到注册表中查找自己需要的服务;
RMI就是客户端发现并调用服务器上服务的过程;
RMI中有个非常重要的概念:存根,客户端发现的对象是服务器上对象的存根,Java RMI的存根有两种形式:存根类(rmic生成)和代理;
1.2 RMI编程元素
要实现远程方法调用就必须按照Java RMI编程的规范实现RMI程序的各个部件,而Java RMI的编程规范就是RMI的编程元素;
-
远程接口:继承了java.rmi.Remote的接口,java中可以远程调用的方法必须在远程接口中定义,且远程方法必须抛出;
-
远程类:实现了远程接口的类,实现了远程接口的具体功能;
-
注册表:服务器注册服务,客户端获取服务的容器,必须先于服务器和客户端启动,有两种启动形式(41440为端口号):
-
代码中启动:LocateRegistry.createRegistry(41440)
-
通过jdk自带的rmiregistry.exe工具启动:F:\Projects\KepusAngular\JDKSupport\target\classes>rmiregistry 41440
-