Я знаю, что могу переименовать свое веб-приложение (или его WAR-файл) в ROOT, но это ужасный способ сделать это, ИМХО. Теперь я проверил документ Tomcat, и он говорит
НЕ рекомендуется размещать элементы непосредственно в файле server.xml.
Поэтому я попытался сделать это другим методом, который он предложил.
Отдельные элементы контекста могут быть явно определены: в отдельном файле в /META-INF/context.xml внутри файлов приложения.
Итак, я создал /META-INF/context.xml
следующий код:
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/"/>
Но после развертывания, когда я перезапустил сервер, ему все равно не удалось загрузить контекст в «/», он все равно загрузил его с "/<WEB_APP_NAME>"
Любые указатели полезны.
tomcat
tomcat7
root
context.xml
Chantz
источник
источник
Ответы:
Что вы можете сделать, это следующее;
Добавить файл с именем
ROOT.xml
в<catalina_home>/conf/Catalina/localhost/
Этот ROOT.xml переопределит настройки по умолчанию для корневого контекста установки tomcat для этого движка и хоста (Catalina и localhost).
Введите следующее в файл ROOT.xml;
Вот,
<yourApp>
название вашего приложения .. :)И вот, ваше приложение теперь является приложением по умолчанию и будет отображаться на
http://localhost:8080
Тем не менее, есть один побочный эффект; Ваше приложение будет загружено дважды. Один
localhost:8080
раз и один разlocalhost:8080/yourApp
. Чтобы это исправить, вы можете поместить свое приложение ВНЕ<catalina_home>/webapps
и использовать относительный или абсолютный путь в теге docBase файла ROOT.xml. Что-то вроде этого;И тогда все должно быть в порядке!
источник
Вот следующие единственные решения, которые работали для меня. Добавьте это к узлу хоста в файле conf / server.xml
источник
server.xml
илиcontext.xml
? я вижу тег XML<Context>
в моемcontext.xml
В Tomcat 9.0 мне нужно только изменить следующее в
server.xml
в
источник
Этот маленький код работал для меня, используя виртуальные хосты
источник
server.xml
? По словам например Али.Мойтехиды выше, это проблематично. Кроме того, другие ответы утверждают, что они/path/to
должны находиться за пределами обычного пути веб-приложений.Самое быстрое и, возможно, лучшее решение - это иметь содержание ниже
<TOMCAT_INSTALL_DIR>/conf/Catalina/localhost/ROOT.xml
И ваше веб-приложение будет доступно на
http://<host>:<port>/
источник
Foobar
в/opt/tomcat/webapps/Foobar
. Я попытался установить docBaseFoobar
и также/opt/tomcat/webapps/Foobar
, но когда я захожу на `http: // <хост>: <порт> /, я все еще вижу домашнюю страницу Tomcat вместо моего приложения Foobar. Я даже перезапустил Tomcat. Что я делаю не так?Я сталкивался с этой проблемой в течение одного месяца. Размещение контекстного тега внутри server.xml небезопасно: оно влияет на элементы контекста, развертываемые для всех остальных хостов, для больших приложений это также приводит к ошибкам подключения, а также к плохой изоляции, например, вы можете получить доступ к другим сайтам по имени папки domain2 .com / domain1Folder !! также соединения сеансов базы данных загружены дважды! Другой способ - поместить файл ROOT.xml, в котором есть тег контекста с полным путем, например:
в conf / catalina / webappsfoldername и разверните файл war как ROOT.war внутри webappsfoldername, а также укажите такой хост
В этом подходе также для приложений одного типа пользовательские сессии не имеют хорошей изоляции! вы можете войти в app1, если app1 совпадает с app2, вы можете после входа в систему через сеанс на стороне сервера автоматически войти в app2 ?! Таким образом, вы должны хранить сессию пользователей в кэше на стороне клиента, а не с jsessionid! мы можем изменить имя движка с localhost, чтобы решить его. но скажем, чтобы играть с котом, нужно больше времени, чем играть с другими кошками!
источник
Не рекомендуется обновлять конфигурацию сервера, например server.xml или ROOT.xml.
Вы можете поместить файл конфигурации context.xml в каталог META-INF своего веб-приложения с включенным параметром пути к контексту. Это заменит настройку сервера по умолчанию?
то есть:
источник
<Context docBase="yourAppName" path="" reloadable="true">
источник
Tomcat 8: после многих поисков это только рабочий код: в server.xml
Перезапустите Tomcat, убедитесь, что при доступе к 127.0.0.1:8080 он отобразит содержимое в 127.0.0.1:8080/apple.
Мой проект был java-веб-приложением, созданным netbeans, я установил контекстный путь в конфигурации проекта, ничего другого, даже я поместил apple.war в папку webapps.
источник
Для меня оба ответа сработали.
Примечание: когда вы объявляете docBase в контексте, тогда игнорируйте appBase на хосте.
ROOT.war
и поместить его под webapps. Так что теперь непревзойденные URL-запросы из других войн (contextpaths) попадут в эту войну. Это лучший способ обработать путь контекста ROOT ("/ **").Второй вариант - это (двойная) загрузка войн из папки Webapps. Также ему нужна только несжатая военная папка, которая является головной болью.
источник
В Tomcat 8.X, в домашней директории tomcat / conf / folder в server.xml вы можете добавить
<Context>
тег под<Host>
тегом, как показано ниже. Но вы должны перезагрузить сервер, чтобы вступили в силуИЛИ, если вы используете Tomcat 7.X, вы можете добавить файл context.xml в папку WEB-INF вашего проекта. Содержимое файла, который я использовал, показан ниже. и это работало нормально для меня. вам не нужно перезагружать сервер в этом случае.
источник
localhost:8080/<Your App Directory Name>/
иlocalhost:8080/<your app path you wish>/
оба эти 2 URL работают одновременно. Нашел эти две извлеченные папки под$CATALINA_HOME/webapps/
.Самое простое и гибкое решение приведено ниже: Inside $ {Tomcat_home} /config/server.xml
Измените autoDeploy = "false" deployOnStartup = "false" в элементе Host, как показано ниже. Это необходимо.
Добавьте строку ниже под элементом Host .
С помощью вышеуказанного подхода мы можем добавить как можно больше приложений в веб-приложения с разными именами контекстных путей.
источник
Приведенный ниже трюк сработал для меня.
1) Прокомментируйте / удалите приведенную ниже конфигурацию из файла server.xml (внутри папки conf) tomcat.
2) Удалите существующую папку ROOT (если есть), находящуюся в папке tomcat webapps. И переименуйте файл войны (например, test.war) в ROOT.war.
Помните, что при переименовании файла war в ROOT.war «ROOT» должен быть заглавными.
Ограничение: Вы можете развернуть только одно приложение в одном экземпляре tomcat.
источник