Если я разверну файл войны на Tomcat, называемый, например, foo-bar-1.1.2.war , как я могу развернуть его, чтобы он извлекается в webapps/bar , а его корень URL — /bar/... ?
Я намереваюсь сохранить военный файл на сервере веб-приложений с информацией о его версии, чтобы я знал, какая версия установлена, но перезаписывал предыдущую версию приложения.
Я мог развернуть военный файл с помощью PSI Probe. Это позволило бы мне указать целевой контекст для веб-приложения. Однако это означает, что я потеряю любую информацию о версии в имени файла войны.
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
Вы также можете использовать Ant (или эквивалентный инструмент) для автоматизации ваших развертываний (и выполнить любое из вышеперечисленного).
Если вы просто хотите включить информацию о версии в имя вашего военного файла, вы можете назвать его следующим образом: my-app##1.2.3.war
. Он распаковывается в каталог my-app##1.2.3
, но контекст будет просто my-app
(т.е. http: // host / my-app / ).
Работает как минимум с Tomcat 7.0.55