Как настроить контекстный путь tomcat для веб-приложения? Имя файла .war находится перед именем приложения в URL-адресе

У меня возникли проблемы с запуском моего веб-приложения «xyz» на сервере tomcat 7, размещенном на серверах DigitalOcean по адресу:

http://myDomain:8080/myWebApp

Имя моего файла .war — «.MyWebApp».

после развертывания файла .war в tomcat приложение запускается по адресу:

http://myDomain:8080/MyWebApp/myWebApp

есть идеи, как удалить эту часть «MyWebApp» из URL-адреса?

Я видел некоторые решения этой проблемы, в основном это решения для запуска приложения на локальном хосте. Они предложили изменить файл «context.xml», что я уже сделал следующим образом:

<?xml version='1.0' encoding='utf-8'?>
<Context>

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>

     path="" docBase="MyWebApp" debug="0" reloadable="true"
</Context>

Любая помощь будет очень высоко ценится!

Не отмечайте это как дубликат. Я проверил все решения, которые работали у меня на локальном хосте, но не на VPS в цифровом океане. Думаю, здесь я достаточно конкретен.

Заранее спасибо!


person Tanvir Hossain Khan    schedule 01.02.2015    source источник
comment
Ваш context.xml не кажется мне действительным, свойство внизу должно быть связано с элементом?   -  person Jean-François Savard    schedule 02.02.2015
comment
Это в основном входит в «контекст». Добавление этого свойства помогло мне решить проблему при работе на локальном хосте с пропуском имени файла войны.   -  person Tanvir Hossain Khan    schedule 02.02.2015


Ответы (2)


Мне пришлось добавить эту строку в файл server.xml. Тод сделать это:

нано и т. д./tomcat/server.xml

добавьте эту строку:

 <Context path="" docBase="Advocatoree" debug="0" reloadable="true"></Context>

Сохраните файл.

Перезапустите кота.

person Tanvir Hossain Khan    schedule 06.02.2015
comment
Обратите внимание, что этот тег должен быть добавлен в тег <Host name="..."...>. - person Hamdi; 04.03.2015

Самый простой способ — переименовать ваше приложение в ROOT.war.

Не очень элегантно, но вполне надежно.

Конечно, есть другие решения.

person Malt    schedule 01.02.2015
comment
Да, переименование файла войны в ROOT не элегантно и может создать проблемы, если у меня более одного веб-приложения. Я проверил вашу ссылку. Эти три метода в основном являются решениями для установки приложения по умолчанию. Но в случае нескольких веб-приложений, работающих на моем сервере tomcat, как я могу пропустить имя файла войны, чтобы получить доступ к приложению, которое является проблемой, в которой я застрял в основном. - person Tanvir Hossain Khan; 02.02.2015
comment
Я попробовал второй метод, добавив эту строку непосредственно перед конечным тегом «Host» в моем server.xml: <Context path="" docBase="Advocatoree" debug="0" reloadable="true"></Context> Это частично решило проблему, поскольку я могу получить к нему доступ, пропуская имя файла войны. Но проблема в том, что он также запускает другой экземпляр с именем файла войны. Это, безусловно, ухудшение производительности! - person Tanvir Hossain Khan; 02.02.2015
comment
@TanvirHKShuvo, поэтому я предпочитаю решение ROOT.war. Этот вопрос задавался несколько раз, и решения всегда одни и те же: stackoverflow.com/questions/7276989/ - person Malt; 02.02.2015