powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / jndi в log4j
1 сообщений из 1, страница 1 из 1
jndi в log4j
    #39667772
BoomLix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день

Пытаюсь получить путь к файлам логов через jndi, как написано в документации log4j2

Путь должен отдавать WAS (Websphere Application Server). Там все прописано в namespace bindings

Однако, получить значение никак не получается.
Подебажив класс JndiLookup log4j2, было выявлено, что если в файле log4j2.xml значение для jndi будет указан вот в таком виде:${jndi:cell/persistent/test-jndi-name}, то из was нужное подтянется.
Однако, тут есть загвоздка: log4j, формируя строку для lookup, добавляет к cell/persistent/test-jndi-name префикс java:comp/env.
И выполняет, соответственно, код:
Код: java
1.
jndiManager.lookup("java:comp/env/cell/persistent/test-jndi-name")


И это, вроде, выглядит, логичным, однако в этом случае я получаю ошибку:
javax.naming.NamingException - Name comp/env/cell/persistent/test-jndi-name not Found in Context "java:"

При этом вот такой код вполне бы отработал нормально:
Код: java
1.
jndiManager.lookup("cell/persistent/test-jndi-name")



Есть, конечно, обходной путь, чтобы log4j не добавлял java:comp/evn - это указать в jndi двоеточие (например, cell/persistent/test:name), так как в этом случае, согласно коду класса JndiLookup jndi останется без изменения:

Код: java
1.
2.
3.
4.
5.
6.
  private String convertJndiName(final String jndiName) {
        if (!jndiName.startsWith(CONTAINER_JNDI_RESOURCE_PATH_PREFIX) && jndiName.indexOf(':') == -1) {
          return CONTAINER_JNDI_RESOURCE_PATH_PREFIX + jndiName;
        }
       return jndiName;
   }



Однако, это кажется костылем и я не знаю, насколько правильно создавать такие имена.
Хотелось бы понять, почему log4j в данном случае не принимает java:comp/env/cell/persistent/test-jndi-name и работает с cell/persistent/test-jndi-name
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / jndi в log4j
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]