2010-04-27 105 views
2

我試圖做RMI一個簡單的程序。但是,我發現了以下異常運行線 Naming.rebind(採用「InterfaceName」,Remoteserverobject),同時,java.security.AccessControlException:拒絕訪問異常

java.security.AccessControlException: 訪問被拒絕 (java.net.SocketPermission 127.0.0.1:1099連接,解決)

我的代碼如下:

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!!!!"); 
     } 
    } 

如何解決這個問題。在此先感謝

回答

-1

我想這個作品

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試圖用一個新的安全管理器重寫。您可以爲此新安全管理器指定任何屬性。因此,該錯誤。解決方案是使用默認管理器,在這些instructions之後創建一個全新的安全管理器。

+0

錯誤的方式。除非您告訴它,否則JVM不會在安全管理器下運行。 RMISecurityManager沒有任何屬性需要設置,所以他們的缺席並不能解釋任何東西。 「使用默認管理器」和「創建全新安全管理器」的指令是自相矛盾的,因此這個答案是沒有意義的。 – EJP 2013-03-21 22:55:21

0

確保你已經安裝了RMISecurityManager作爲解釋here

+0

S.我包括該行。它正在創建新的rmisecurity經理。但是,沒用。 – Nila 2010-04-27 10:19:22

+0

你可以發佈你的代碼 – objects 2010-04-27 10:20:11

+0

S ..我發佈。你能檢查嗎? – Nila 2010-04-30 06:41:42

1

不要使用安全管理器,除非(我)你知道你需要一個和(ii)您已經寫了一個合適的.policy文件。如果您認爲這些都適用,請使用-Djava.security.debug =訪問權限運行您的問題,但無法查看發生了什麼問題。您很可能沒有授予您自己所需的權限,或者您沒有正確指定策略文件的位置。

+0

@Downvoter:這個答案有什麼問題? – EJP 2010-05-24 08:42:27

相關問題