2012-02-27 70 views
1

我試圖從該服務器運行的控制檯的Java代理和我得到這個異常:java.security.AccessControlException:拒絕訪問(java.lang.RuntimePermission偏好)

Agent Manager: Agent printing: WARN AppLogger.java:246 initialize() Could not find a log4j.properties resource! Defaulting to app.log output. 
Agent Manager: Agent error: Exception in thread "AgentThread: FTPBB" 
Agent Manager: Agent error: java.lang.ExceptionInInitializerError 
Agent Manager: Agent error: at java.lang.J9VMInternals.initialize(J9VMInternals.java:222) 
Agent Manager: Agent error: at java.lang.J9VMInternals.initialize(J9VMInternals.java:167) 
Agent Manager: Agent error: at com.bloomberg.datalic.api.ExtendedFTPConnection.<clinit>(ExtendedFTPConnection.java:2780) 
Agent Manager: Agent error: at java.lang.J9VMInternals.initializeImpl(Native Method) 
Agent Manager: Agent error: at java.lang.J9VMInternals.initialize(J9VMInternals.java:200) 
Agent Manager: Agent error: at FTP.<init>(FTP.java:93) 
Agent Manager: Agent error: at FTPBB.NotesMain(FTPBB.java:110) 
Agent Manager: Agent error: at lotus.domino.AgentBase.runNotes(Unknown Source) 
Agent Manager: Agent error: at lotus.domino.NotesThread.run(Unknown Source) 
Agent Manager: Agent error: Caused by: 
Agent Manager: Agent error: java.security.AccessControlException: Access denied (java.lang.RuntimePermission preferences) 
Agent Manager: Agent error: at java.security.AccessController.checkPermission(AccessController.java:108) 
Agent Manager: Agent error: at java.lang.SecurityManager.checkPermission(SecurityManager.java:544) 
Agent Manager: Agent error: at java.util.prefs.Preferences.userRoot(Preferences.java:443) 
Agent Manager: Agent error: at com.bloomberg.datalic.util.DLPreferencesTree.<init>(DLPreferencesTree.java:29) 
Agent Manager: Agent error: at com.bloomberg.datalic.util.DLPreferencesTree.getInstance(DLPreferencesTree.java:44) 
Agent Manager: Agent error: at com.bloomberg.datalic.util.DLPreferenceNode.<clinit>(DLPreferenceNode.java:19) 
Agent Manager: Agent error: at java.lang.J9VMInternals.initializeImpl(Native Method) 
Agent Manager: Agent error: at java.lang.J9VMInternals.initialize(J9VMInternals.java:200) 
Agent Manager: Agent error: ... 8 more 

代理使用來自Bloomberg的兩個外部jar庫。這兩個導入到代理中,並放置在服務器上的domino/jvm/lib目錄中。

調用導入庫中某個類的類構造函數時引發異常。

代理程序在Designer客戶端中手動運行時運行良好。

我想我必須編輯java.pol *文件,但在這裏,我的經驗,我很有限,我怕......

請指點

/麥克

+0

我應該補充說,這些文件位於jvm/lib/ext目錄中。 另外我有一個java.pol文件,其中包含以下授權: 授權{ \t permission java.security.AllPermission; }; 在java.security文件中啓用此文件 – 2012-02-27 13:38:50

+0

此外代理的安全級別設置爲3 – 2012-02-27 13:51:12

回答

2

我現在想通了。 java.pol文件根本沒有使用,儘管java.security文件狀態應該包含它。

要做到這一點,您需要改變java.policy文件。 我可能會說這不是首選的解決方案,因爲.pol文件應該留給用戶添加授權,而.policy文件是默認的Domino JVM文件。

2

你錯過了喜好的RuntimePermission:

java.security.AccessControlException:拒絕訪問(java.lang.RuntimePermission 喜歡分配辦法

你需要做的就是添加使用RuntimePermission到您的策略文件的最小值:

grant { 
    permission java.lang.RuntimePermission "preferences"; 
}; 

一旦你過去這個例外,你可能會得到更多的,但最好比允許所有權限。

+0

對不起,這並未解決問題。我得到同樣的例外。 – 2012-02-28 08:05:07

+0

我的java.security文件: policy.url.1 = file:$ {java.home} /lib/security/java.policy policy.url.2 = file:$ {java.home}/lib/security/java.pol policy.url.3 =文件:/// $ {}的user.home /.java.policy 我java.pol文件: 授予{ \t權限java.security.AllPermission; \t permission java.lang.RuntimePermission「preferences」; }; – 2012-02-28 08:10:36

相關問題