упорядочение нескольких jndi.properties на classpath - PullRequest
2 голосов
/ 03 марта 2010

У меня есть веб-сервис jboss, который получает неправильный начальный контекст.Я хочу, чтобы он использовал java.naming.factory.initial из jndi.properties в корневом каталоге служб, а не тот, что в jboss jndi.properties, который является NamingContextFactory.В файле сборки ant я поместил jndi.properties в classpath и убедился, что он копируется в архив, но служба все равно получает вместо него NamingContextFactory.Как я могу определить, какой jndi.properties используется для правильной настройки фабрики?

К сожалению, у меня есть сторонний jar, который я должен использовать, который ожидает, что его исходная фабрика контекста будет той, которая указана вэто упакованный файл jndi.properties, но когда я запускаю его в jboss, он получает NamingContextFactory.Я не могу изменить файл jboss jndi.properties без того, чтобы все сломалось.

1 Ответ

2 голосов
/ 03 марта 2010

Если у вас есть несколько файлов jndi.properties в корне пути к классам, InitialContext предпримет некоторую попытку объединить два, но выигрыш одного из них - более или менее случайный случай.

Если вы хотите убедиться, тогда InitialContext имеет конструктор, который принимает Hashtable свойств, где вы можете указать их явно. В этом случае это было бы предпочтительнее, чем неявная загрузка через jndi.properties. Вы всегда можете загрузить свою цель jndi.properties в Properties объект (который является подклассом Hashtable) и передать его конструктору.

...