Развернуть военный файл с изменяемыми файлами свойств - PullRequest
0 голосов
/ 08 июля 2010

Я создаю веб-сервис и упаковываю его в файл военных действий для развертывания. Прямо сейчас все мои файлы конфигурации (.properties и .xml) упаковываются в мой .war-файл. Это не сработает, так как некоторые из этих файлов нужно будет модифицировать для каждой отдельной установки. Я знаю, что некоторые контейнеры сервлетов оставят файлы .war нетронутыми, что означает, что файлы конфигурации никогда не будут легко изменены. Мой вопрос заключается в следующем: какова лучшая практика для развертывания файла .war с этими внешними файлами конфигурации? Я думаю, что файлы конфигурации должны быть отправлены отдельно от файла .war и помещены в каталог, который находится в classpath. Существует ли в Tomcat настройка каталога по умолчанию, в которую эти файлы можно просто вставить, и мой веб-сервис сможет найти без особых проблем?

Может быть, я не должен использовать военный файл для этой настройки? Может быть, я должен просто предоставить zip-файл (с тем же содержимым, что и у war-файла), а развертывание будет просто для извлечения zip-файла в каталог webapps?

Ответы [ 3 ]

0 голосов
/ 09 июля 2010

Если наличие файла, видимого из всех веб-приложений, не является проблемой, вы можете поставить его $CATALINA_HOME/lib.

0 голосов
/ 07 февраля 2014

Одним из решений является изменение файла свойств после развертывания файла war, это использование метода ServletContext.getRealpath (), чтобы получить реальный путь, означает путь к файлу на сервере, на котором он был развернут, а затем изменить этот файл, в котором он будет изменять файл.контейнер только не оригинальный файл.Поэтому вам нужно сделать резервную копию, если это важная модификация для вас.Таким образом, вам не нужно повторно развертывать файл war, поскольку он уже изменяет файл из развернутого контейнера.

Это решение позволяет редактировать файл, который находится в папке веб-страниц, также из класса java.

Если вам нужно больше описания или как это сделать, дайте мне знать, что я это сделал.

0 голосов
/ 09 июля 2010

Я не знаю ни одного каталога по умолчанию в Tomcat для хранения конфигурации, мой попытки решить ту же проблему были:

1 - Переместить конфигурацию в БД и предоставить сценарии или веб-страницы для изменения значений.
2 - Есть сценарий для развертывания войны. Скрипт объединит конфигурацию из пользовательского каталога в файл web.xml или другие развернутые файлы конфигурации.
3 - веб-приложения сначала просматривают каталог пользователя для настройки и если не найден, ищите файлы конфигурации, развернутые войной.

Наименее любимым является 3 - он требует, чтобы все веб-приложения проверяли два места для конфигурации и у вас на сервере два разных xml-файла с разными значениями, и не всегда понятно, какой из них используется.

Следующим любимым вариантом является 2 - веб-приложения могут быть написаны без знания нескольких файлов конфигурации, но вы сталкиваетесь с проблемой, когда кто-то выполняет развертывание из диспетчера Tomcat вместо использования вашего сценария.

Фаворит 1. Это просто работает в большинстве случаев. Проблема в том, что у вас нет БД или хотите настроить способ подключения к БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...