2012-07-15 78 views
0

我正在写与Java RMI客户端 - 服务器程序,我得到一个错误:Java RMI的java.security.AccessControlException:拒绝访问

java.security.AccessControlException: access denied ("java.net.SocketPermission" "127.0.0.1:1099" "connect,resolve")

我的代码如下所示:

package xxx; 

import java.rmi.Naming; 
import java.rmi.RemoteException; 

public class Server extends Engine implements RemoteInterface { 

public Server() { 
    super(); 

    if(System.getSecurityManager() == null) { 
     System.setSecurityManager(new SecurityManager()); 
    } 

    try { 
     Naming.rebind("Test", this); 

     System.out.println("Bound in registry!"); 
    } catch(Exception ex) { 
     System.out.println(ex); 
    } 
} 

@Override 
public void test() throws RemoteException { 
    System.out.println("test() invoked"); 
} 
} 

怎么了?

回答

0

我忘了添加注册表和实现Serializable。问题解决了。我也删除了SecurityManager。

+0

你也忘了其他几件事。这些遗漏都不会导致这个问题。 – EJP 2012-07-15 22:10:38

+0

那么,那么你错了,因为添加这些修复问题。 – MikkoP 2012-07-16 09:27:11

+0

唯一可以解决该问题的方法是删除SecurityManager或修复.policy文件。 – EJP 2012-07-17 10:57:48

0

您已经安装了SecurityManager,但您尚未授予您足够的权限来执行此代码。

为什么你认为你需要一个SecurityManager?除非你打算运行上传的代码,否则我只是摆脱它

相关问题