Tomcat - вложенный путь веб-приложения без использования Apache HTTPD

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

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

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

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

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

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

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

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

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

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

Большое спасибо за ваше время. Всегда ценится!


person SiLeNCeD    schedule 18.05.2018    source источник
comment
написать код до сих пор AppA/сервлет вызывает AppB/resource   -  person Scary Wombat    schedule 18.05.2018


Ответы (1)


На самом деле вам нужны вложенные контексты только в конфигурации Tomcat.

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

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

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

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

person Eugène Adell    schedule 18.05.2018
comment
Не знаю, как я пропустил посты об этом... но это совершенно то, к чему я стремлюсь. Спасибо @eugène-adell! - person SiLeNCeD; 18.05.2018