Я читал об этом в руководстве Tomcat здесь и некоторые вопросы SO.И я думаю, что я делаю то же самое.Но каким-то образом не удается добиться успеха.
Прежде всего я должен сказать, что мое приложение развернуто на общем сервере Tomcat, который я не могу контролировать.Я просто сбрасываю свой файл .war , и он развертывается.
Я пытался упаковать свое приложение как ROOT.war , но не смогРабота.Администратор сказал мне, чтобы он упаковывался как угодно, и я бы позаботился об этом.Я упаковал его как my-application.war , и он был развернут, но мне нужно ввести http://my -host / my-application чтобы попасть на сайт.
После обращения к администратору они сказали мне, что они поместили контекстный элемент в мой хост в файле конфигурации Tomcat, например:
<Context path="" docBase="path of my-application deployed folder"/>
, который должен был установить my-application как приложение по умолчанию для всех запросов, поступающих на my-host
.Но это не так, и когда я ввожу http://my -host я получаю:
HTTP Status 404 - / The requested resource (/) is not available
Но снова, когда я вхожу http://my -host / my-application все работает нормально.Любое предложение о том, что может быть не так, безусловно, приветствуется.
Обновления:
Я попытался выполнить шаги, описанные в документации tomcat для , как сделать приложение по умолчанию .Описаны 3 способа, и я попробовал все три способа и смог успешно развернуть свое приложение как ROOT на localhost.
Я также попытался воспроизвести проблему, с которой сталкиваюсь, на удаленном сервере, чтобы найти причину и сообщить об этом администратору.Я нахожу пару проблем.
- В фрагменте server.xml , который прислал мне админ autoDeploy и deployOnStartUp , установлены в true,тогда как они должны быть ложными, если явно определен элемент Context в server.xml.Это приведет к двойному развертыванию, которое создаст папку ROOT и папку с именем .war-файла.При удалении .war удаляется соответствующая папка, и приложение удаляется, но ROOT остается, и его необходимо удалить вручную, и требуется перезапуск Tomcat.До перезапуска любое развертывание ROOT.war не будет выполнено.
- Я полагал, что есть некоторые причины, препятствующие развертыванию ROOT.war.Можно предположить, что ROOT.xml существует в conf / {engine-name} / {host-name} или ROOTпапка существует в appBase хоста или, как я описал выше, приложение ROOT из предыдущего развертывания не отменено и требует перезапуска Tomcat.
В любом случае я не мог точно определить, что именно предотвращает ROOT.warот развертывания, поскольку для этого требуется доступ к файлам журнала Tomcat и файлам conf для проверки случаев, описанных выше.
Также из всего, что я вижу, мой админ, кажется, не в состоянии поддерживать сервер Tomcat и находить проблему.Поэтому я решил использовать выделенный сервер Tomcat после борьбы с общим.