2012-07-15 81 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?除非你打算運行上傳的代碼,否則我只是擺脫它

相關問題