java.security.AccessControlException: доступ запрещен (предпочтения java.lang.RuntimePermission) - PullRequest
1 голос
/ 27 февраля 2012

Я пытаюсь запустить агент 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-библиотеки от Bloomberg.Эти два импортируются в агент и также помещаются в каталог domino / jvm / lib на сервере.

Исключение выдается при вызове конструктора класса одного из классов в импортируемой библиотеке.

Агент работает нормально при запуске его вручную в клиенте Designer.

Я думаю, что должен редактировать файлы java.pol *, но мой опыт здесь довольно ограничен, я боюсь ...

Пожалуйста, совет

/ Майк

Ответы [ 2 ]

2 голосов
/ 28 февраля 2012

Я уже понял это. Файл java.pol вообще не используется, несмотря на то, что файл java.security указывает, что его следует включить.

Чтобы это работало, вам нужно изменить файл java.policy. Это, я мог бы сказать, не является предпочтительным решением, так как файл .pol должен быть оставлен для добавленных пользователем грантов, а файл .policy является файлом JVM Domino по умолчанию.

2 голосов
/ 27 февраля 2012

Вам не хватает предпочтений RuntimePermission:

java.security.AccessControlException: доступ запрещен (java.lang.RuntimePermission предпочтения )

Минимум, который вам нужно сделать, это добавить RuntimePermission в ваш файл политики:

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

Как только вы преодолеете это исключение, вы, вероятно, получите больше, но это лучше, чем разрешить все разрешения.

...