Я пытаюсь изменить приложение по умолчанию веб-сервера Tomcat 6 на приложение, отличное от «ROOT» (внутри папки webapps). Каков наилучший способ сделать это?
Есть три метода:
Сначала выключите 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
, указав атрибуты path
и docBase . Вы должны сделать это, потому что вы отключили все механизмы автоматического развертывания Tomcat, и Tomcat больше не будет развертывать ваши приложения, пока не найдет их контекст в файле server.xml
.
Второй способ: чтобы внести какие-либо изменения в любое приложение, вам нужно будет остановить и перезапустить Tomcat.
Поместите ваш WAR-файл вне $CATALINA_BASE/webapps
(он должен быть снаружи, чтобы предотвратить двойное развертывание). Поместите файл контекста с именем ROOT.xml
в $CATALINA_BASE/conf/
. Единственный элемент в этом файле контекста ДОЛЖЕН иметь
атрибут docBase, указывающий на расположение вашего файла WAR. Элемент пути не следует указывать - .xml
в данном случае он является производным от имени файла ROOT.xml
. Подробности см. В документации по контейнеру Context .
$CATALINA_BASE/conf/[enginename]/[hostname]
каталог (что для моей довольно простой установки$CATALINA_HOME/conf/Catalina/localhost
). См. Документацию Контейнера контекста .sudo systemctl start tomcatx
гдеx
стоит номер версииДобавление
<Context>
тега в<Host>
тегserver.xml
для Tomcat 6 решит проблему.Если вы используете
path=""
пустой, вы можете использовать URL-адрес, напримерhttp://localhost/first.do
.В теге контекста установите атрибуты
docBase="E:\struts-ITRCbook\myStrutsbook"
иreloadable="true"
, затем завершите тег контекста.Это должно выглядеть примерно так:
источник
В Tomcat 7 с этими изменениями я могу получить доступ
myAPP
в/
иROOT
в/ROOT
Добавьте выше в
<Host>
раздел server.xmlисточник
/ROOT
и пытаюсь войти на страницу Manager с правильными учетными данными, мне отказывают в доступе. Знаете ли вы, как это исправить?Приложение ROOT по умолчанию - это обычно Tomcat Manager, который может быть полезен, поэтому я решил оставить его под рукой.
Итак, как я сделал свой приложение ROOT и сохранил TCmgr следующим образом.
переименовал ROOT в другое
затем создал символическую ссылку, по которой ROOT указывает на приложение, которое я хочу сделать по умолчанию.
работал у меня и казался самым простым подходом.
источник
Согласно документации Apache Tomcat, вы можете изменить приложение, создав файл ROOT.xml. Смотрите это для получения дополнительной информации:
http://tomcat.apache.org/tomcat-6.0-doc/config/context.html
«Веб-приложение по умолчанию может быть определено с помощью файла с именем ROOT.xml».
источник
Вы можете сделать это немного хитрым способом:
источник
Альтернативным решением было бы создать сервлет, который отправляет перенаправление на желаемое веб-приложение по умолчанию и сопоставляет этот сервлет со всеми URL-адресами в корневом веб-приложении.
Добавьте указанный выше класс в
CATALINA_BASE/webapps/ROOT/WEB-INF/classes/com/example/servlet
.И добавьте следующее
CATALINA_BASE/webapps/ROOT/WEB-INF/web.xml
:И при желании вы можете легко изменить RedirectServlet, чтобы он принял параметр инициализации, чтобы вы могли установить веб-приложение по умолчанию без изменения источника.
Я не уверен, будет ли это иметь какие-либо негативные последствия, но я проверил это, и, похоже, это работает.
источник
конфигурация context.xml у меня не сработала. Tomcat 6.0.29 жалуется на то, что docBase находится внутри appBase: ... Для Tomcat 5 это действительно сработало.
Так что одно решение - поместить приложение в ROOT папку.
Еще одно очень простое решение - поместить index.jsp в ROOT, который перенаправляет мое приложение следующим образом: response.sendRedirect ("/ MyApplicationXy");
С наилучшими пожеланиями, Ян
источник
У меня проблема при настройке Tomcat
server.xml
и добавлении элемента Context. Он просто не хочет использовать мою конфигурацию: http://www.oreillynet.com/onjava/blog/2006/12/configuration_antipatterns_tom.htmlЕсли вы находитесь в
Unix-like
системе:mv $CATALINA_HOME/webapps/ROOT $CATALINA_HOME/webapps/___ROOT
ln -s $CATALINA_HOME/webapps/your_project $CATALINA_HOME/webapps/ROOT
Готово.
Работает для меня.
источник
Окончательный способ изменить корневое приложение Tomcat. Проверено на Tomcat 7 и 8.
Перейдите в каталог веб-приложений tomcat:
Пример на моей машине:
~/stack/apache-tomcat/webapps
Переименуйте, замените или удалите ROOT папку. Мой совет - переименовать или создать копию для резервного копирования. Пример переименования ROOT в RENAMED_ROOT:
mv ROOT RENAMED_ROOT
Переместите военный файл с вашим приложением в каталог tomcat webapps (это каталог, в котором была старая папка ROOT на моем компьютере: ~ / stack / apache-tomcat / webapps)
источник
Я посмотрю свои документы; есть способ указать конфигурацию для изменения пути корневого веб-приложения от ROOT (или ROOT.war), но, похоже, он изменился между Tomcat 5 и 6.
Нашел это:
http://www.nabble.com/Re:-Tomcat-6-and-ROOT-application...-td20017401.html
Итак, кажется, что изменение корневого пути (в ROOT.xml) возможно, но немного не работает - вам нужно переместить свою WAR за пределы каталога автоматического развертывания. Не возражаете, если я спрошу, почему просто переименование вашего файла в ROOT.war не работает?
источник
Не очень хорошее решение, но один из способов - перенаправить из приложения ROOT в YourWebApp. Для этого вам нужно изменить ROOT index.html.
ИЛИ
Ссылка: http://staraphd.blogspot.com/2009/10/change-default-root-folder-in-tomcat.html
источник
В Tomcat 7 (под Windows server) я ничего не добавлял и не редактировал ни в одном файле конфигурации. Я просто переименовал папку ROOT во что-то другое и переименовал свою папку приложения в ROOT, и все заработало.
источник