在使用RMI时,有时候要涉及到许可的问题,需要在客户端配置安全策略;
RMIClient.java是客户端的实现RMI的类;
在使用Naming.lookup()前要配置安全策略;
1、创建server.policy文件,文件内容为:
grant{permission java.security.AllPermission;};
2、把server.policy放在RMIClient.java同目录下
3、代码:
URL policyURL = RMIClient.class.getResource("server.policy");
if(policyURL != null){
System.setProperty("java.security.policy", policyURL.toString());
System.setSecurityManager(new RMISecurityManager());
}
Naming.lookup("rmi://192.168.1.1:1099/RMIServerName");
注: 常出现policyURL为空的情况
1、没有把server.policy文件放到RMIClient.java的同目录下
2、没有把server.policy文件从src编译到classes中,
在程序实际运行下找不到这个文件;