我正在使用 RMI 开发企业应用程序,但在尝试(重新)绑定对象时出现错误:
Naming.rebind(url, this);
// 对象“this”是 UnicastRemoteObject 的子类 在此指令之前,我创建了一个新的 RMISecurityManager :
if (System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
确切的错误是:
[err] java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.sun.reflect")
我正在开发 WAS Liberty Profile 8.5.5。我尝试在EAR项目的META-INF文件夹中创建java.policy、app.policy、was.policy、server.policy,没有任何成功。
我试图用指令设置文件:
System.setProperty("java.security.policy", ".../security/java.policy");
这样,它就起作用了!
我错过了什么?(由于最后一个解决方案有效,我假设 java.policy 文件格式正确且高效,所以这只是将这个文件包含到我的 ear 文件中并在配置中纳入 WAS 的方法......)谢谢。