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

Установка приложения по умолчанию в tomcat 7

Я просмотрел потоки, описывающие, как настроить данную WAR (скажем, abc.war) как веб-приложение по умолчанию в tomcat.

Либо

Переименуйте abc.war в ROOT.war

или

Создайте контекст ROOT.xml в ${tomcat.home}/conf/Catalina/localhost с path = "" и docBase, установленный для относительного/абсолютного пути к войне (сохраняя abc.war вне webapps, чтобы избежать двойного развертывания).

Оба решения приводят к ROOT.war в каталоге webapps (appBase). Однако я хочу сохранить имя WAR (abc.war) в webapps и не иметь отдельный ROOT.war для этого.

Одним из решений, которое работало в моем случае, было добавление контекста под <Host> тег в server.xml. Но согласно Tomcat 7 Doc, не рекомендуется добавлять контекст непосредственно в server.xml.

Может ли кто-нибудь указать мне на альтернативу?

Спасибо.

4b9b3361

Ответ 1

подробный подход

Первый метод:

сначала выключите ваш tomcat [из каталога bin (sh shutdown.sh)], затем вы должен удалить все содержимое вашей папки webapps tomcat (rm -fr *), затем переименуйте свой файл WAR в ROOT.war, наконец, запустите свой tomcat [из каталога bin (sh startup.sh)]

Второй метод:

оставьте свой военный файл в CATALINA_BASE/webapps под его первоначальным именем - выключите autoDeploy и deployOnStartup в вашем элементе Host в файле server.xml. явно определить все приложения Контексты в server.xml, указав оба пути и docBase. Вы должны это сделать, потому что вы отключили все Tomcat механизмы автоматического развертывания, а Tomcat больше не будет развертывать ваши приложения если он не находит свой Контекст в server.xml.

Примечание:

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

Третий метод:

Поместите военный файл за пределы CATALINA_BASE/webapps (он должен быть снаружи для предотвращения двойного развертывания). - Поместите файл контекста с именем ROOT.xml в
CATALINA_BASE/conf//. Единственный элемент в этом файле контекста ДОЛЖЕН иметь docBase, указывающий на местоположение вашего файла войны. Элемент пути не должен быть установлен - он выводится из имени .xml файла, в этом случай ROOT.xml. Подробнее см. Контекстный контейнер выше.