关于rmi应用中policy的设置
服务器端设置:
linux 7.1
j2sdk1.3.1_06
ip:192.168.0.1
客户端配置:
win2000 professional
j2sdk1.4.1
ip:192.168.0.2
操作顺序:
1、在客户端的jbuilder环境下,编写完服务器和客户端程序并编译。
2、在客户端用rmic生成stub和sketelon。
3、将所有class文件连同policy文件copy到服务器上。
4、在服务器上运行rmiregistry -J-Djava.security.policy=file:/a/RMI.policy
5、在服务器上启动服务程序
java -Djava.security.policy=file:/a/RMI.policy com.samples.rmi.rmiServ
6、在客户端运行
java -Djava.security.policy=file:/d:/RMI.policy com.samples.rmi.rmiServ 192.168.0.1
这时报错:
java.security.AccessControlException: access denied (java.net.SocketPermission 192.168.0.1:1099 connect,resolve)
以下是RMI.policy文件的内容:
grant {
// allows anyone to listen on un-privileged ports
// permission java.security.AllPermission;
permission java.net.SocketPermission "127.0.0.1:1024-65535", "listen,accept,connect,resolve";
permission java.net.SocketPermission "202.99.188.116:1024-65535", "listen,accept,connect,resolve";
};
在policy里如果采用permission java.security.AllPermission权限,会报同样的错误。