Облегчение установки и развертывания Java-приложения с открытым исходным кодом на Tomcat, Jetty и т. Д. - PullRequest
0 голосов
/ 27 февраля 2012

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

Сейчас.Мой вопрос заключается в том, как наилучшим образом упаковать и распространить веб-приложение, чтобы его было легко установить, и как описать этот процесс установки в документации.Возможные варианты:

  • Распространение веб-приложения в виде архива WAR.Рекомендуем пользователям развернуть WAR в свой Tomcat / Jetty / что угодно, затем перетащить файл конфигурации в /webapps/myapp/WEB-INF и изменить /webapps/myapp/WEB-INF/web.xml соответственно
  • Распространение веб-приложения в качестве источника.Рекомендуем пользователям перенести свой файл конфигурации в папку /src/main/webapp/WEB-INF, затем соответствующим образом изменить свои /src/main/webapp/WEB-INF/web.xml, затем создать WAR-файл с помощью Ant или Maven и развернуть его в своем контейнере сервлета.

Тамвероятно, есть другие варианты, о которых я не могу думать.

Какая настройка наиболее удобна для пользователей, которым необходимо установить, настроить и развернуть веб-приложение?

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

Ответы [ 4 ]

2 голосов
/ 27 февраля 2012

Выделите эту конфигурацию и, возможно, предоставьте некоторые значения по умолчанию.Если вы создаете новую версию своего приложения, все должны помнить, что нужно создать резервную копию этого файла конфигурации, затем заново развернуть и затем скопировать этот файл -> это кошмар.положить эту конфигурацию в другом месте.Например, вы можете использовать Java Preferences.

1 голос
/ 28 февраля 2012

Предоставляя мой собственный ответ после более подробного прочтения вопроса: JNDI кажется «официальным», хотя и несколько тяжеловесным, способом решения этой проблемы. С помощью JNDI параметр конфигурации (например, расположение полного файла конфигурации, который мне нужен) может быть объявлен в web.xml, а его фактическое значение может быть установлено в веб-приложении context.xml, которое находится в каталоге /webapps Tomcat (или каталог /contexts Jetty). Эта настройка имеет ряд преимуществ:

  • Большой файл конфигурации может находиться вне контейнера сервлетов и веб-приложения
  • Веб-приложение может быть обновлено без опасности потери конфигурации
  • Распределенную войну не нужно модифицировать или перестраивать

Недостаток: это довольно сложно, требует возиться с XML, а настройка JNDI на Tomcat работает иначе, чем Jetty (требует вдвое больше документации).

1 голос
/ 27 февраля 2012

Я бы сказал, что WAR, хотя не требуется конфигурация, вероятно, будет более удобным :)

Что, в общем-то, нужно настраивать так, чтобы для всех не было разумного значения по умолчанию?Строка URL?

0 голосов
/ 15 апреля 2012

Может быть, использовать системное свойство для расположения файла конфигурации.Может быть легко передано в командной строке как -Dorg.example.config.file=/foo/bar, в сценариях запуска или в коде Java.Я думаю, что видел некоторые инструменты, например, каркасы журналов, использующие системные свойства для подобных вещей в веб-приложениях.

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