Как скрыть контекст приложения в его URL с Tomcat? - PullRequest
2 голосов
/ 02 марта 2011

У меня есть несколько приложений, работающих в Tomcat. У каждого свой контекст. Я подключил их к различным доменным именам с помощью Apache HTTP Server и mod_jk (подробности см. В этом вопросе: Как смонтировать приложение Tomcat с контекстной ссылкой с mod_jk? ). Работает нормально, но когда приложения генерируют свои веб-страницы, все URL-адреса по-прежнему имеют контекст:

  1. http://www.example.com/ переходит к http://www.example.com:8080/my-context/
  2. http://www.example.com:8080/my-context/ создает веб-страницу
  3. Веб-страница содержит URL /my-context/some-page.jsf

Я бы хотел видеть /some-page.jsf на третьем шаге. Важно отметить, что я не могу изменить внутренние компоненты приложения. Они предоставляются третьими лицами. Все, что я могу сделать, это настроить Tomcat или Apache HTTP Server.

1 Ответ

4 голосов
/ 02 марта 2011

Это немного усложняется, но вы можете использовать переписчик URL, такой как tuckey переписать исходящие URL-адреса, удалив префикс / my-context (под «исходящими URL-адресами» я подразумеваю создание URL-адресов внутри вашего веб-приложения). Проверьте документацию для элемента в http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/3.2/index.html.

Чтобы приложение Tuckey работало с вашим веб-приложением, вам необходимо добавить объявления в файл web.xml вашего приложения. Технически это означает «изменение приложений», но оно минимально инвазивно. Если по какой-то причине вы не можете даже прикоснуться к web.xml (не знаю почему), я, кажется, вспоминаю способ внешнего применения фильтра (не клапана) к веб-приложению в Tomcat, но это довольно далеко.

...