先熟悉RMI的步骤
服务器端:
(1)定义远程端口
(2)编写实现远程接口的类
(3)使用rmic工具(该工具在jdk里,在dos窗口操作),将上述服务器类生成存根和主干。
(4)编写一个主类,实例化服务器类,生成远程对象,并且向注册库注册该对象引用。
(5)命名注册远程对象,利用java.rmi.Naming的方法
客户端:
(1)编写客户机类,调用远程对象上的方法。利用java.rmi.Naming的方法
(2)启动注册库start rmiregistry [port]
(3)运行服务端主类,创建远程对象,并向注册库注册该对象引用
(4)运行客户机
在书的13页
一个say hello的例子:
新建文件夹testrmi
里面写四个类
(1)HelloInterface.java(远程接口)
并且编译
(2)HelloImplementor.java(服务器类,实现远程接口)
并且编译
(3)生成存根 rmic –v1.2 testrmi.HelloImplementor
前三步:
(4)编写主类HelloHelper 实例化服务器类,生成远程对象,并且向注册库命名注册远程对象
Paste_Image.png并且编译,这里不贴图片
(5)启动注册库
然后运行HelloHelper,
Paste_Image.png这里出错,看英文注释,不要老想谷歌找答案,exportException:port already in use:1099,意思就是1099这个端口被占用,不能用了
所以我们另开一个dos,输入命令:netstat -ano|findstr "1099",找到这个端口,记住PID,这里是9908
查看是哪个进程或者程序占用了1099端口
tasklist|findstr "9908"
发现是刚刚start rmiregistry的引发的程序,我们把它结束
这样就可以了,
(5)写客户端类
Paste_Image.png编译
Paste_Image.png再运行客户端类
Paste_Image.png这样就完成了
ps:这里的类不能在myeclipse里写,因为文件里有包,而包得在classpath里写出该包的路径才可以运行。
最后谢谢这位
http://www.cnblogs.com/gongyu/p/3962635.html
网友评论