一般来说,使用RMI的时候,客户端都要从服务端下载一个_stub存根类,这样做很不方便。
一个简单的RMI调用的方法如下:
在服务端定义一个继承Remote接口的接口Server,在这个接口里面定义我们要在客户端进行访问的方法。
然后编写远程对象类实现这个Server接口。
服务端示例代码如下:
定义接口
定义远程对象
在客户端同样定义一个同样的Server接口(包名也必须一致),从而我们就可以直接把从注册表中读出来的远程对象转换成Server类型的。这样我们就不需要存根对象。当然这样做存在局限性(客户端必须定义与服务端同样的接口),但是只要约定好了,会简化RMI的配置和使用。
客户端示例代码如下:
定义接口:
读取远程对象:
另外:客户端也可以不定义接口而通过反射来调用远程对象。反射在效率上会差一点。