2013-06-14 2 views
4

Я пытаюсь настроить JNDI поиск в веб-приложения, которые будут развернуты в Tomcat 7. Я указал следующие свойства в файле jndi.properties:конфигурация JNDI в Tomcat

java.naming.factory.initial = орг. jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs = org.jboss.naming: org.jnp.interfaces, java.naming.provider.url = локальный: 1199

Но когда я получить начальный контекст и проверить его атрибуты, он показывает, что java.naming.factory.initial изменяется на org.apache.naming.java.JavaURLContextFactory и все остальные свойства остаются такими же, как в файле jndi.properties.Я не понимаю, почему это одно свойство получает изменения? Как я могу предотвратить это и заставить tomcat использовать свойство, которое я указал?

ответ

1

Я считаю, что свойства JNDI должны быть специфическими для поставщика. То, что вы пытаетесь установить, предназначено для Jboss JNDI-свойств и, возможно, возвращалось к специфическим для Tomcat Proerties. Хотя вы можете попытаться перезаписать их программно, это может работать неправильно.

+1

Я уже делал это, модифицировал свойства программно, и это сработало, но мой вопрос был, почему они не работали напрямую из jndi.properties? Потому что я написал автономного клиента, который использует jndi.properties, и он отлично работает, но тот же код и тот же файл jndi.properties не работают в Tomcat. Он меняет исходную фабрику контекста на JavaURLContextFactory, хотя я указал NamingContextFactory. –

0

Вы должны поместить все это в элемент Resource в ваш файл META-INF/context.xml и посмотреть этот ресурс через URL-адрес java: comp/env. Это то, что Tomcat пытается настроить здесь: фабрика объектов для этого пространства имен.

+1

Я тоже пробовал с этим, и это сработало. Но поскольку я ищу удаленное дерево jndi и мое приложение Tomcat - это клиент, я думал, что настройка ресурсов в tomcat - не очень хорошая идея. Еще одна вещь: jndi.properties должна работать независимо от того, какие ресурсы я настраиваю на клиенте, потому что я не ищу в JNDI-файле клиента, а скорее в дереве JNDI сервера. –

0

Я думаю, вы должны добавить свои свойства в свой файл catalina.properties, это под вашим $ tomcat_home/conf.

Смежные вопросы