我正在尝试从服务器的控制台运行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 *文件但我在这里的经历非常有限,我担心...
请咨询
/麦克
答案 0 :(得分:2)
您错过了偏好设置 RuntimePermission:
java.security.AccessControlException:拒绝访问(java.lang.RuntimePermission 首选项)
您需要做的最小事情是将运行时传递给您的策略文件:
grant {
permission java.lang.RuntimePermission "preferences";
};
一旦你超越了这个例外,你可能会获得更多,但它比允许所有权限更好。
答案 1 :(得分:2)
我现在想出来了。 尽管java.security文件声明它应该被包含在内,但根本没有使用java.pol文件。
要完成此工作,您需要更改java.policy文件。 我可能会说这不是首选解决方案,因为.pol文件应留给用户添加的授权,而.policy文件是默认的Domino JVM文件。
答案 2 :(得分:0)
打开java.policy
中存储的[JAVA]\jvm\lib\security
文档
并在“ grant”部分添加以下语句:
permission java.lang.RuntimePermission "modifyThread";
permission java.lang.RuntimePermission "getenv.*";