Назад | Перейти на главную страницу

Перенаправление URL-адреса в другое веб-приложение в Tomcat

Я использую tomcat 6.0, и у меня возникли проблемы с его настройкой на то, что я хочу ...

У меня есть два веб-приложения, назовите их X и Y, развернутые как X.war и Y.war. У каждого есть сервлет под названием blah.

Так что я могу получить к ним доступ так: http: // сервер / X / бла http: // server / Y / blah

Я хочу представить, что они представляют собой одно веб-приложение Z, и уметь это делать:

http: // сервер / Z / X / бла -> как будто я пошел в http: // сервер / X / бла

http: // server / Z / Y / blah -> как будто я пошел http: // server / Y / blah

Поэтому я изменил (catalina_home) /conf/Catalina/localhost/X.xml следующим образом: <context override = "true" path = "/ Z / X" reloadable = "false">

Однако это не сработало; когда собираешься http: // сервер / Z / X / бла Я получаю сообщение «Запрошенный ресурс (/ Z / X / blah) недоступен».

Где я ошибаюсь?

Альтернативный способ сделать это - настроить tomcat за apache через ajp. Затем используйте mod_proxy_ajp для сопоставления http: // сервер / Z / вместо этого на ajp: // server /.

Если вы добавите Context в пределах server.xml он будет работать как хотите.

<Context docBase="x" path="/z/x" reloadable="true"  />

Этот подход не рекомендуется в документации Tomcat, поскольку любые изменения в server.xml означает перезапуск сервера, нарушающий работу всех веб-приложений.

Но, с другой стороны, практика держать это так, как вы хотите, в Catalina_Home/conf/Catalina/localhost/context.xml имеет некоторые ненадежности, как сообщали другие.

Видеть https://stackoverflow.com/questions/4032773/why-does-tomcat-replace-context-xml-on-redeploy и

Почему tomcat нравится удалять мой файл context.xml?