簡體   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