У меня проблемы с использованием JNDI, когда два или более приложений развернуты на Tomcat 6. Рассмотрим следующий сценарий: у меня есть 2 веб-приложения, где каждый файл web.xml содержит один параметр JNDI.web.xml webapp A:<br/>
<code><env-entry>
<env-entry-name>testEntry</env-entry-name>
<env-entry-value>value A</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
web.xml webapp B:<br/>
<code><env-entry>
<env-entry-name>testEntry</env-entry-name>
<env-entry-value>value B</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
Когда я развертываю оба веб-приложения и ищу значение для testEntry, оба веб-приложения возвращают значение 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();<br/>
Context envCtx = (Context) initCtx.lookup("java:comp/env");<br/>
String value = (String)envCtx.lookup("testEntry");<br/>
Любая помощь будет приветствоваться, потому что хорошей документацией по JNDI являются шрамы.