2012-02-27 141 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

相关问题