2010-02-24 78 views
1

我在嘗試將我的java程序連接到2個不同的套接字時出現問題。基本上我想初始化我的RMI服務器(連接到端口1099),然後在端口10002初始化PrologBeans。初始化似乎對兩者都正常工作,但只要嘗試訪問prologBeans,我會得到以下錯誤:Java RMI - 套接字權限問題

Exception in thread "main" java.security.AccessControlException: access denied 

    (java.net.SocketPermission 127.0.0.1:10002 connect,resolve) 
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) 
at java.security.AccessController.checkPermission(AccessController.java:546) 
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) 
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034) 
at java.net.Socket.connect(Socket.java:519) 
at java.net.Socket.connect(Socket.java:475) 
at java.net.Socket.<init>(Socket.java:372) 
at java.net.Socket.<init>(Socket.java:186) 
at se.sics.prologbeans.PrologSession.connectToServer(PrologSession.java:511) 
at se.sics.prologbeans.PrologSession.initSend(PrologSession.java:442) 
at se.sics.prologbeans.PrologSession.send(PrologSession.java:368) 
at se.sics.prologbeans.PrologSession.executeQuery(PrologSession.java:331) 
at api.ActionRetriever.logEvent(ActionRetriever.java:68) 
at contract.ContractManager.log_event(ContractManager.java:87) 
at gui.RMITrial.main(RMITrial.java:39) 

我也有一個政策文件(在我的RMI代碼包這甚至正確的地方到另一個地方的政策文件,還是應在默認的包?),它被設置爲:

grant { 
permission java.security.AllPermission;}; 

我想知道是否有人有任何想法,爲什麼我得到SocketPermission錯誤?我的權限設置是否錯誤?

任何幫助將不勝感激。

謝謝。

回答

1

您需要包括VM參數-Djava.security.policy =路徑/到/政策/文件... ,然後你的政策文件應該被讀取,所有應罰款:)