RMI中客户端与服务器端的部署

网上大多数RMI的例子、教程,关于部署讲得较少,并且很多是有错的,所以在这里总结一下。

以下假设服务器端与客户端的主目录下面都具有策略文件:.java.policy,其内容假设是:
grant {
 // Allow everything
 permission java.security.AllPermission;
};


当RMI服务器端跟客户端需要部署到不同的机器时:
1. 服务器注册时应该使用
  Naming.rebind("//10.1.16.207/Server", instance);

2. 服务器启动时应是:
  java -Djava.rmi.server.codebase=http://10.1.16.207/download/ ServerImpl
   同时把ServerImpl_Stub放在http://10.1.16.207/download/下供下载

3. rmiregistry启动时,需要注意rmiregistry进程所具有的CLASSPATH变量,最简单的方法是,单独开一个console把CLASSPATH清空再运行rmiregistry

4. 客户端程序也需要设置SecurityManager,这在网上许多例子中都没有实现

经过上面4步,就应该能实现真正的远程调用了。

(java -Djava.rmi.server.codebase=http://10.1.16.207/download/ Client)

当RMI服务跟客户端服务在同一台机,并且不需要下载Stub类时:
把stub,skeleton放在服务器类所在目录。
1. 服务器注册时应该使用
  Naming.rebind("Server", instance);

2. 服务器启动时只需:
  java ServerImpl

3. rmiregistry启动时,需要注意rmiregistry进程所具有的CLASSPATH变量,此时应该让rmiregistry能找到Stub类。最简单的方法是,在CLASSPATH的值为.的时候,在stub类目录下运行start rmiregistry。

4. 注意CLASSPATH,让客户端类能找到stub类,运行客户端程序:java Client即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值