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

该代理使用 Bloomberg 的两个外部 jar 库。这两个导入到代理中,也放在服务器上的 domino/jvm/lib 目录下。

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

在 Designer 客户端中手动运行代理时,它运行良好。

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

请指教

/麦克风

4

3 回答 3

2

我现在已经弄清楚了。根本不使用 java.pol 文件,尽管 java.security 文件声明它应该包含在内。

要完成这项工作,您需要更改 java.policy 文件。我可能会说这不是首选解决方案,因为 .pol 文件应该留给用户添加授权,而 .policy 文件是默认的 Domino JVM 文件。

于 2012-02-28T08:46:00.767 回答
2

您缺少首选项RuntimePermission:

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

您需要做的最低限度是在您的策略文件中添加一个 RuntimePermission:

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

一旦你通过了这个例外,你可能会得到更多,但这比允许所有权限要好。

于 2012-02-27T19:28:36.913 回答
0

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

permission java.lang.RuntimePermission "modifyThread";
permission java.lang.RuntimePermission "getenv.*";
于 2020-06-11T16:16:35.643 回答