Tomcat - перенаправить старый контекстный корень в новый контекстный корень

Мы хотим изменить корневой контекст веб-приложения Tomcat и использовать старый URL-адрес, который направляет пользователей к недавно названному приложению.

http://hostname/oldappname
http://hostname/newappname

Один из способов сделать это - развернуть приложение с корнем контекста newappname, а другое приложение - с корнем контекста oldappname и заставить его направлять пользователей к новому URL-адресу.

Эта простая опция нам не открыта, внутренняя политика компании запрещает запуск нескольких приложений в одном экземпляре Tomcat (не подлежит обсуждению).

Я помню, у GlassFish есть концепция "альтернативного корня документа", который можно использовать для предоставления приложению нескольких контекстных корней, есть идеи, как это сделать в Tomcat?

1 ответ

Решение

Существует Dir под названием ROOT под tomcat/webapps,

Это ROOT-приложение заканчивается тем, что вызывается для тех URL-адресов, которые имеют "contextPath", отличный от каталогов в папке Webapps.

Чтобы вы могли:

  1. Создайте папку с именем "oldappname" непосредственно в папке "ROOT".

  2. Создайте файл index.html в этой папке "oldappname" и создайте для него Javascript для перенаправления браузера на новый URL-адрес.

Всякий раз, когда браузер вызывает http://servername/oldappname, tomcat окажет: webapps/ROOT/oldappname/index.html

ОБНОВИТЬ:

Вы могли бы сделать некоторые интересные вещи с ROOT:

Tomcat 6: Как изменить приложение ROOT

https://tomcat.apache.org/tomcat-7.0-doc/config/context.html

Пример файла index.html для перенаправления со старого приложения на новое имя:

<html>
<head>
<script type="text/javascript">
window.location.href = "/newappname";
</script>
</head>
</html>

Быть помещенным в webapps/ROOT/oldappname как описано выше Меконом.

См. Также: Как установить контекстный путь веб-приложения в Tomcat 7.0.

Другие вопросы по тегам