[分布式技术]Java RMI

 Java RMI

 

这几天在看《Core Java》,研究了下RMI技术,现在用一个小例子演示下RMI

为了能充分说明RMI远程方法调用的特性,现在本机上装了一个虚拟机来模拟现实中的分布式应用。

本机IP192.168.27.1

虚拟机IP192.168.27.128

主机作为服务器向客户端提供远程服务,虚拟机作为客户端,调用服务器(主机)提供的远程服务。

 

在主机Elipse下建立工程RMIDemoServer,目录结构如下:

 

并建立下面3个Java文件

Hello.java

 

HelloImpl.java

 

HelloServer.java

 

其中

rmi.server.Hello为描述远程服务的接口,提供sayHello方法,依RMI规范,该接口必须继承至Remote接口,且所有方法均要抛出RemoteException

rmi.server.HelloImpl为rmi.server.Hello接口的实现类,实现了sayHello()方法,返回一个简单的字符串信息

rmi.server.HelloServer为服务器的主类,在1099端口上监听客户端请求,并在命名服务上下文中绑定hello,供客户端调用

 

 

在虚拟机Eclipse中,建立工程RMIDemoClient,目录结构如下:

 

 

并编写客户端访问程序如下:

HelloClient.java

注意:需将RMIDemoServer项目中的Hello.class打包成jar包,添加到RMIDemoClient的Classpath中(或者直接拷贝Hello.java至RMIDemoClient项目中),否则HelloClient的代码编译不能通过。

 

运行RMIDemoServer项目中的HelloServer,并在服务器控制台看到下面信息:

[Server] -  server start...
[Server] -  waiting for client...

 

运行RMIDemoClient中的HelloClient,并在客户端控制台看到下面信息:

[Client] - sayHello()
[Client] - Hi,zhangsan!

且能看到服务器控制台也有相应的信息打印出来:

[Server] -  request from client,name=zhangsan

可见客户端调用服务器方法成功!

 

整个RMI程序运行的流程图如下:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值