Подтвердить что ты не робот

Как я могу сопоставить несколько контекстов с одним и тем же файлом войны в Tomcat?

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

В настоящее время у меня есть app1.war и app2.war, но оба имеют одинаковое содержимое, но только имя отличается от доступа через http:///app1 и http:///app1.war. Но я хотел бы сделать это: Deploy app.war и получить доступ к нему как с помощью контекста app1, так и из контекста app2. Можно ли это сделать в tomcat? Пожалуйста, помогите мне из этого

4b9b3361

Ответ 1

Это можно сделать несколькими способами. Я думаю, что этот путь является самым простым:

  • Переместить файл WAR вне каталога webapps/ автоматического развертывания
  • Извлеките META-INF/context.xml из вашего файла WAR. Если у вашей WAR нет файла META-INF/context.xml, просто используйте файл с ним, но <Context /> в нем
  • Скопируйте этот файл в каталог Tomcat conf/[service]/[host]/ как app1.xml и app2.xml. (Служба [service] обычно "Catalina", а [host] - это то, что имя вашего виртуального хоста: в конфигурации Tomcat по умолчанию имя хоста всегда "localhost" ).
  • Отредактируйте как app1.xml, так и app2.xml и установите атрибут docBase для элемента <Context>, чтобы указать на файл WAR, перемещенный на шаге # 1
  • Повторный запуск Tomcat

Это должно дать вам один физический файл WAR и несколько контекстов, развернутых из него.

Хотя Tomcat поддерживает эту конфигурацию, я рекомендую против этого: дисковое пространство дешево, оно ничего не меняет во время выполнения (вы все равно получаете две копии всего в памяти), и вы теряете гибкость при развертывании разных файлов WAR в разных контекстах и/или обновлять их отдельно, не изменяя конфигурацию обоих контекстов.

Если вы хотите мой совет, придерживайтесь дубликатов файлов WAR.