Проблема с параметрами JNDI, зависящими от контекста, в tomcat 6

У меня проблемы с использованием JNDI, когда на Tomcat 6 развернуто два или более приложений. Рассмотрим следующий сценарий: У меня есть 2 webapps, где каждый web.xml содержит один параметр JNDI.

web.xml webapp A:


testEntry
значение A
java.lang.String

web.xml webapp B:


testEntry
значение B
java.lang.String

Когда я развертываю и веб-приложения, и найдите значение для 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 - это шрамы.

9
задан scuro 11 November 2010 в 00:04
поделиться