Развертывание файла войны в Tomcat с другим путем

Если я разверну файл войны на Tomcat, называемый, например, foo-bar-1.1.2.war , как я могу развернуть его, чтобы он извлекается в webapps/bar , а его корень URL — /bar/... ?

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

Я мог развернуть военный файл с помощью PSI Probe. Это позволило бы мне указать целевой контекст для веб-приложения. Однако это означает, что я потеряю любую информацию о версии в имени файла войны.

25
задан z12345 5 March 2012 в 09:53
поделиться

2 ответа

Tomcat всегда извлекает содержимое файла войны в папку с тем же именем (когда он настроен для развертывания войн - по умолчанию и т. Д.).

Вы можете извлечь его в любое имя папки по вашему выбору. Поэтому, если вы распакуете содержимое foo.war в папку с именем bar/ вручную, а не просто поместите войну в папку веб-приложений, оно все равно загрузит веб-приложение.

Тем не менее, это совершенно не нужно, поскольку вы можете указать шаблон URL приложения, не перепутывая с именем файла folder / war, переопределив корневой элемент контекста для вашего приложения:

Это часто устанавливается в Tomcat server.xml - но эта практика довольно широко не рекомендуется. Вместо этого я бы предложил вам использовать context.xml в папке META-INF вашего веб-приложения / файла war:

<Context path="/bar" .../>

Когда приложение развернуто, context.xml следует скопировать в /conf/Catalina/localhost но переименован в foo.xml

Обратите внимание, что корни конекста должны быть уникальными, и есть некоторые дополнительные соображения, если вы используете операции autoDeploy или deployOnStartup (Источник http: // tomcat .apache.org / 7,0-кот-DOC / конфигурации / context.html ).


Другие опции включают:

  • Очистите папку веб-приложений при каждом развертывании и добавьте новую войну foo-1.1.0.
  • Включите номер версии в плоский файл. foo/version1
  • Или просто включить версию в файл config / XML.

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

24
ответ дан 28 November 2019 в 21:10
поделиться

Если вы просто хотите включить информацию о версии в имя вашего военного файла, вы можете назвать его следующим образом: my-app##1.2.3.war. Он распаковывается в каталог my-app##1.2.3, но контекст будет просто my-app (т.е. http: // host / my-app / ).

Работает как минимум с Tomcat 7.0.55

5
ответ дан 28 November 2019 в 21:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: