我在java中是新的RMI的話題,我瓦納創建客戶端服務器應用程序了使用RMI,RMI java.security.Policy中的訪問被拒絕
我跟着本教程在這個環節發現:RMI Tutorial using eclipse
但我現在用的NetBeans,這裏是服務器代碼:
import java.rmi.*;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.*;
public class AdditionServer {
public static void main (String[] argv) {
try {
if (System.getSecurityManager() == null)
{
System.setSecurityManager(new SecurityManager());
}
String policy="file:/home/user/NetBeansProjects/RMIServerSide/security.policy";
System.setProperty("java.security.policy",policy);
Addition Hello = new Addition();
System.out.println("test\n");
Registry reg=LocateRegistry.createRegistry(1099);
reg.rebind("rmi://localhost/ABC", Hello);
System.out.println("Addition Server is ready.");
}catch (Exception e) {
System.out.println("Addition Server failed: " + e);
}
}
}
這裏security.policy:
grant codeBase "/home/user/NetBeansProjects/RMIServerSide/build/classes/" {
permission java.security.AllPermission;
};
然後我在終端中運行rmiregistry &。 然後我運行服務器和這裏的輸出是什麼確切:
Addition Server failed: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.security.policy" "write")
是不是我錯過了,像虛擬機或東西???一個配置.....
除非您還設置了安全管理器,否則這將不會產生影響,您必須在設置策略之後並在綁定之前設置該安全管理器,因此顯然您沒有這樣做。無論如何,用安全管理器設置AllPermission是毫無意義的。 – EJP 2015-03-02 01:53:51