автоматическая установка веб-приложения - PullRequest
3 голосов
/ 24 июня 2011

Мне нужно иметь автоустановку / обновление веб-приложения, работающего на JBoss 6.

Мне нужно как минимум: * остановить сервер * скопируйте войну в каталог развертывания * применять сценарии обновления БД * запустить сервер

Знаете ли вы инструмент или проект с открытым исходным кодом для этого?

Thx Christophe

Ответы [ 2 ]

0 голосов
/ 24 февраля 2012

Для информации мы наконец-то внедрили собственное решение.В основном

  1. Одна работа загружает с FTP ZIP-файл, содержащий приложение-установщик, написанное на Java
  2. Одна распаковывается, программа установки запускается.Он выполняет сценарии обновления SQL, а затем развертывает файл WAR с помощью JBoss JMX API.Однако для поддержки кластера JBoss нам пришлось написать собственный MBean, чтобы скопировать файл WAR на каждом узле.
0 голосов
/ 24 июня 2011

Большинство контейнеров сервлетов имеют возможность развертывания без остановки сервера. Некоторые делают это путем удаления файла WAR в определенный каталог, который опрашивается веб-сервером (если он настроен правильно), в то время как другие предоставляют доступ к веб-API «загрузки».

JBoss обычно использует Tomcat в качестве контейнера сервлета. Хотя я не знаю, какую версию использует ваша версия JBoss, Tomcat уже давно поддерживает развертывание на работающем сервере. Возможно, документации для Tomcat 5.5 достаточно, чтобы вы могли определить, какие изменения (если они есть) нужно внести.

В случае, если вам действительно нужно остановить сервер, Tomcat имеет возможность остановить сервер от внешней программы (для этого требуется только отправка нужного типа сообщения); однако после остановки Tomcat не может получить сообщение о запуске, его нужно будет запустить вручную.

Лучшим решением было бы определить, когда приложение запущено, путем просмотра событий жизненного цикла сервлета, а затем «проверить» базу данных при событии «первого запуска». В случае если ваша база данных обнаружит, что база данных не соответствует ожидаемой версии, примените изменения. После того, как обнаружение базы данных покажет, что база данных обновлена, начните обычную обработку запроса. Это изолирует код в вашем веб-приложении таким образом, чтобы его можно было легко развертывать и обновлять, хотя это требует больше работы по настройке приложения для инкапсуляции его собственных обязанностей по обслуживанию базы данных.

В случае, если такая техника не подходит, вам придется полагаться на внешний инструмент для выполнения работы. Обычно такой инструмент требует интенсивной интеграции ресурсов (иногда на нескольких машинах). В таком случае для решения возникающих проблем обычно применяется Enterprise Job Scheduler или механизм рабочего процесса (с вашими собственными письменными адаптерами).

...