Tomcat - путь вложенных веб-приложений без использования Apache HTTPD - PullRequest
0 голосов
/ 18 мая 2018

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

У меня есть экземпляр Tomcat 8.В этом случае у меня есть:

  • AppA (WAR) - Основное веб-приложение
  • AppB (WAR) - Вторичное субприложение (на самом деле это еще не все функции), но люди получат доступиспользуя специальный путь (например, «сервис»).

Я не не хочу запускать Apache HTTPD (или любые другие дополнительные сервисные уровни).Я также хочу сделать это безразличным на уровне Tomcat, вместо того, чтобы пытаться подделать это через входящие сети / waf / и т. Д. Или через само приложение (позвольте разработчику работать над другим необходимым кодированием).

Что я действительно хочузаключается в том, чтобы настроить Tomcat так, чтобы он сам справился с этим:

  • Пользователь может посетить https://host.com/AppA
  • Пользователь может использовать эту функцию, если он перейдет к https://host.com/AppA/service (что указывает на AppB, но пользователь никогда не должен видеть имя WAR «AppB» - изменение имени WAR на «service» вполне допустимо, если это сохраняет здравый смысл)

Теперь япопробовал следовать конфигурации виртуального хоста (https://tomcat.apache.org/tomcat-8.0-doc/virtual-hosting-howto.html) с небольшими изменениями здесь, чтобы посмотреть, смогу ли я сделать это в соответствии с тем, что мне нужно ... и ... он не работает, но я думаю, что если tomcat может сделать это, я могуполучите это там.

Что я пробовал до сих пор:

  • Обновлен [tomcat] /conf/server.xml с добавленной записью.
  • Добавлена ​​новая папка, похожая на webapps, под названием [tomcat] / AppBapp (здесь находится AppB.war)
  • Добавлен контекстный файл [tomcat] /conf/Catalina/localhost/AppB.xml.

IЯ видел несколько постов, где они вроде как делают это, но в противоположном направлении (корневой веб-каталог указывает на какой-то пользовательский путь к серверу).Я думаю, что могу разобраться в этом конфиге, но я должен спросить ... будет ли эта стратегия работать даже для того, что я пытаюсь сделать с Tomcat?Или я совсем не в том поле?

Спасибо за ваше время.Всегда ценю!

1 Ответ

0 голосов
/ 18 мая 2018

Фактически, вы хотите вложенные контексты только для конфигурации Tomcat.

Об этом говорилось в Списке пользователей Tomcat , и вы можете посмотреть на это архивная ветка о вложенных контекстах .

Насколько я понимаю, данное решение основывается на конфигурации двух контекстов:

$TOMCAT_BASE/conf/Catalina/localhost/A.xml
$TOMCAT_BASE/conf/Catalina/localhost/A#service.xml

с каталогами webapps/A и webapps/A#service (этот содержит развернутое содержимое appB).

...