У меня проблемы с использованием JNDI, когда на Tomcat 6 развернуто два или более приложений.
Рассмотрим следующий сценарий:
У меня есть 2 webapps, где каждый web.xml содержит один параметр JNDI.
web.xml webapp A:
env -entry>
web.xml webapp B:
Когда я развертываю и веб-приложения, и найдите значение для testEntry, оба webapps возвращают значение A. Кажется, доступны только параметры JNDI из первого загруженного файла web.xml. Согласно моему пониманию JNDI, каждый файл web.xml содержит значения JNDI, специфичные для веб-приложений, которые доступны только в их собственном контексте. Что я здесь делаю / думаю неправильно?
Это приводит к моему следующему вопросу. Как определить глобальные параметры JNDI, доступные во всех контекстах? В документации по tomcat я читал, что для этой цели вам следует использовать {CATALINA_HOME} /conf/context.xml. Но записи среды недоступны внутри контекстов. Размещение их в {CATALINA_HOME} /conf/web.xml делает их общедоступными, но я сомневаюсь, что это правильный способ.
Это мой код Java для их поиска:
Context initCtx = new InitialContext ();
Контекст envCtx = (Контекст) initCtx.lookup ("java: comp / env");
String value = (String) envCtx.lookup ("testEntry");
Любая помощь будет приветствоваться, потому что хорошая документация по JNDI - это шрамы.