Конфигурация / поиск JNDI в Glassfish - PullRequest
7 голосов
/ 12 марта 2011

У меня проблемы с настройкой базовой конфигурации JNDI в Glassfish.

У меня есть, как мне кажется, простая задача: во время выполнения определить, установлено ли для определенного свойства значение true или нет.Я думаю, что это хорошее приложение JNDI, но, похоже, не получается правильно указать путь между сервером приложений и моим кодом сервлета.

Вот как я настроил свойство в Glassfish:

enter image description here

В своем коде сервлета я пытаюсь найти значение с помощью:

Boolean enabled = (Boolean) ctx.lookup("java:global/arizona/quartz_enabled");

В дополнение к этому пути я также безуспешно попробовал следующее:

  • Java: глобальный / Аризона / Аризона / Quartz_enabled
  • Java: модуль / Аризона / Quartz_enabled
  • Java: модуль / Аризона / Аризона / Quartz_enabled

Мое приложение называется "Аризона", но оно развернуто в корневом контексте, если это имеет значение.

Я уверен, что просто найти правильное пространство имен для доступа к свойству, но я чувствую, что просто стреляю в темноте, пытаясь найти его.Есть ли простой способ просмотреть дерево JNDI в Glassfish?

Ответы [ 3 ]

4 голосов
/ 22 марта 2011

При поиске ресурса JNDI, созданного на сервере, его имя JNDI в точности совпадает с тем, которое вы ввели в качестве имени на сервере.IE:

Boolean enabled = (Boolean) ctx.lookup ("arizona");

Соглашения об именах JNDI и некоторый пример кода о том, как искать все, смотрите на этой странице:

http://www.javaworld.com/javaworld/jw-01-2000/jw-01-howto.html

1 голос
/ 08 марта 2013

Я не могу заставить его работать с javax.naming.InitialContext#lookup, но добавление ресурса с

@Resource(name = "arizona/quartz_enabled")
private Boolean enabled;

работает просто отлично.

1 голос
/ 12 марта 2011

В подобных ситуациях я просто помещаю точку останова, где создается экземпляр объекта (в данном случае InitialContext), и оцениваю его впоследствии. IntelliJ IDEA имеет хороший оценщик , не уверен в других, возможно, худших IDE.

Кстати, правильный префикс для всех привязок Java EE - java:comp/env/, например java:comp/env/arizona/quartz_enabled.

Вы также можете посмотреть этот ресурс .

...