RMI 测试通过的例子

首先定义远程接口

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface Upper extends Remote{
 
 public String upperCase(String str) throws RemoteException;

}

定义远程实现服务器类

import java.rmi.Naming;
import java.rmi.RMISecurityManager;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.server.UnicastRemoteObject;

public class UpperImpl extends UnicastRemoteObject implements Upper{
 
 public UpperImpl() throws RemoteException
 {
  super();
 }

 public String upperCase(String str) {
  return str.toUpperCase();
 }


 public static void main(String[] args) {

  try
  {

   LocateRegistry.createRegistry(12345);
   Upper upper = new UpperImpl();
   Naming.rebind("//localhost:12345/Upper",upper);
  }
  catch(Exception e)
  {

   e.printStackTrace();
  }

 }

}
 

定义客户端类

import java.awt.Toolkit;
import java.io.FileInputStream;
import java.rmi.Naming;
import java.rmi.RMISecurityManager;

 

public class UpperClient {


 public static void main(String[] args) {
  try
  {

 //System.setProperty("java.security.policy","one.policy");
   System.setSecurityManager(new RMISecurityManager());
   
   String url = "//192.168.0.88:12345/Upper";
   Upper upper = (Upper) Naming.lookup(url);
   String greeting = upper.upperCase("abcdefg");
   System.out.println(greeting);

  }catch(Exception e)
  {
   e.printStackTrace();
  }

 }

}
 

定义权限策略文件 one.policy

grant{
permission java.security.AllPermission;
};

 

开始运行程序: 请使用命令行运行程序。

           A.---->javac *.java 

           B.---->rmic UpperImpl

           C----->java UpperImpl

           D---->java -Djava.security.policy=file:./one.policy UpperClient   // 这是关键的一步,不要输入错误了。

然后控制台输出 ABCDEFG。 至此结束。

 

但是我在使用 eclipse IDE 的时候,把

//System.setProperty("java.security.policy","one.policy");

注释打开后,出现如下的异常, 到现在还没有解决,哪位看客知道原因,敬请回复指导。

java.security.AccessControlException: access denied (java.net.SocketPermission 192.168.0.88:12345 connect,resolve)

 

 

2008-06-03 14:50:30 下面的方式可以解决问题。

System.setProperty("java.security.policy","file:E:/eclipse_workspace/rmiTest/src/upper/one.policy");
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值