java.security.AccessControlException:访问被拒绝(java.lang.RuntimePermission首选项)

问题描述 投票:1回答:3

我正在尝试从服务器的控制台运行Java代理,但出现此异常:

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

该代理使用彭博社的两个外部jar库。这两个都导入到代理中,并且也放置在服务器上的domino / jvm / lib目录中。

在调用导入的库中的一个类的类构造函数时引发异常。

当在Designer客户端中手动运行代理时,代理运行正常。

我想我必须编辑java.pol *文件,但是我在这里的经验非常有限,恐怕...

请咨询

/麦克

java lotus-domino accesscontrolexception
3个回答
2
投票

您缺少preferences RuntimePermission:

java.security.AccessControlException:访问被拒绝(java.lang.RuntimePermission preferences

您需要做的最少工作是add对策略文件的RuntimePermission:

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

一旦超过此异常,您可能会得到更多,但比允许所有权限要好。


2
投票

我现在已经弄清楚了。尽管java.security文件指出应将其包括在内,但根本不使用java.pol文件。

要进行此项工作,您需要更改java.policy文件。我可能会说这不是首选的解决方案,因为应将.pol文件留给用户添加的赠款,而.policy文件是缺省的Domino JVM文件。]


1
投票

打开java.policy中存储的[JAVA]\jvm\lib\security文档并在“ grant”部分中添加以下语句:

© www.soinside.com 2019 - 2024. All rights reserved.