Как переместить детали среды за пределы EAR - PullRequest
3 голосов
/ 29 января 2009

Наш проект - это веб-приложение среднего размера, разработанное с использованием RAD 7.0 на WAS 6.1 / hibernate / Struts, которое перешло в производство. В настоящее время мы жестко запрограммировали IP-адрес производственной системы в файле свойств и сведения о схеме базы данных в файле конфигурации Hibernate.

Наш клиент хочет, чтобы мы предложили решение для хранения подробностей об окружающей среде вне EAR, чтобы они могли в будущем изменять детали среды / db без открытия EAR.

Любые указатели были бы очень полезны. Спасибо.

Ответы [ 4 ]

5 голосов
/ 29 января 2009

Вы можете использовать JNDI для этого. Вы должны создать соответствующие записи и в своем коде читать их так:

Context initialContext = new InitialContext();
URL ip = (URL) initialContext.lookup("java:comp/env/myip");

См. эту статью о том, как использовать источник данных JNDI в файлах конфигурации Hibernate.

0 голосов
/ 29 января 2009

я получил один ответ от другого форума, что с помощью настройки пути к классам, доступной в настройках веб-сервера, мы можем сделать это

укажите путь к каталогу, в котором вы сохранили файл свойств, и перезапустите сервер, на котором он находится

но попробуйте это

Есть ли способ вывести файл hibernate cfg из EAR или просто детали конфигурации db, которые мы упоминаем в hibernate cfg вне EAR?

0 голосов
/ 29 января 2009

Вы можете сохранить конфигурацию в каталоге вне уха на сервере и, когда приложение запускается (обычно с использованием сервлета, который вызывается при запуске приложения), считывать конфигурацию в одноэлементный или статический класс. Предоставьте пользователю-администратору в приложении утилиту для перезагрузки конфигурации из файла, чтобы при каждой перезагрузке можно было перезагрузить последнюю конфигурацию.

0 голосов
/ 29 января 2009

Вы можете попробовать это, я придерживаюсь первого решения в моих проектах.

  1. Храните всю эту информацию в файле свойств, который находится внутри EAR. Когда они хотят изменить информацию, они должны повторно развернуть EAR. Это то, что я использую как способ управления изменениями в SCM.

  2. Заставьте ваше приложение прочитать файл свойств, в котором есть эти данные, и во время запуска приложения код ссылается на этот файл, который находится вне EAR. Они изменяют данные и перезапускают приложение.

...