繁体   English   中英

java.security.AccessControlException:访问被拒绝的异常

[英]java.security.AccessControlException: access denied Exception

我正在尝试为RMI做一个简单的程序。 但是,我在运行Naming.rebind(“ interfacename”,Remoteserverobject);行时遇到以下异常。

java.security.AccessControlException:访问被拒绝(java.net.SocketPermission 127.0.0.1:1099 connect,resolve)

我的代码如下:

public static void main(String[] args) throws Exception {

        if(System.getSecurityManager()==null)
        {
            System.setSecurityManager(new RMISecurityManager());
        }
        Remoteserver objremoteserver=new Remoteserver();
        objremoteserver.setmsg("Hello! How are you?");
        System.out.println(objremoteserver.getmsg());
        try
        {
        Naming.rebind("Remotemethod", objremoteserver);
        System.out.println("Server Started");
        }
        catch(RemoteException re)
        {
            System.out.println(re.getLocalizedMessage());
        }
        finally
        {
            System.out.println("Unknown Exception Occured!!!!");
        }
    }

如何克服这个问题。 提前致谢

除非(i)您知道自己需要一个,并且(ii)您已经编写了适当的.policy文件,否则请不要使用安全管理器。 如果您认为这两种方法都适用,请使用-Djava.security.debug = access运行您的问题,否则将无法查看实际出了什么问题。 您很可能没有授予自己所需的权限,或者未正确指定策略文件的位置。

确保已按照此处的说明设置RMISecurityManager

我想这可行

public static void main(String[] args) throws Exception {

        Remoteserver objremoteserver=new Remoteserver();
        objremoteserver.setmsg("Hello! How are you?");
        System.out.println(objremoteserver.getmsg());
        try
        {
        Naming.rebind("Remotemethod", objremoteserver);
        System.out.println("Server Started");
        }
        catch(RemoteException re)
        {
            System.out.println(re.getLocalizedMessage());
        }
        finally
        {
            System.out.println("Unknown Exception Occured!!!!");
        }
    }

每个JRE都有​​一个默认的安全管理器,U r试图用新的安全管理器覆盖。 您可以为此新的安全管理器指定任何属性。因此会出现错误。解决方案是使用默认管理器,并按照以下说明创建一个全新的安全管理器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM