RMI 是一种 Java 进程间通信的方式。
接口定义
首先,需要创建进程间通信的接口,需要继承 Remote :
1 | import java.rmi.Remote; |
服务端实现
服务端进程负责实现接口,需要继承 UnicastRemoteObject :
1 | import java.net.MalformedURLException; |
以及,注册自身的 IP 地址和端口号:
1 | public static void main(String[] args) { |
客户端实现
客户端进程直接通过 IP 地址和端口号获取接口实例,并进行调用:
1 | try { |
异常处理
1 | no security manager: RMI class loader disabled |
原因:服务端和客户端包名需要一致。
1 | Caused by: java.lang.IllegalArgumentException: illegal remote method encountered |
原因:Remote 接口定义的方法没有 throws RemoteException。