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

Развертывание войны с настраиваемым контекстом в Tomcat

У меня есть сервер Tomcat под управлением Apache с коммуникациями с использованием AJP. Конфигурация использует JkMount для сопоставления URL-адресов на Apache с узлом Tomcat.

Я помогаю в развертывании приложения, которое создано с использованием Maven и поэтому поставляется в виде файла с именем «my-war-3.0.1.war».

Мы можем сделать объявление JkMount в следующем стиле:

JkMount /my-war-3.0.1 my-node
JkMount /my-war-3.0.1/* my-node

Но, очевидно, для этого нужен номер версии. Новые выпуски будут означать обновление монтажа, закладок пользователей и т. Д., Что, очевидно, нехорошо.

Я бы хотел иметь объявление JkMount в следующем стиле:

JkMount /my-war my-node
JkMount /my-war/* my-node

Но я почти уверен, что это означает, что имя файла .war должно быть таким же.

Я почти уверен, что можно указать Tomcat развернуть указанный .war под другим именем, используя фрагменты файла контекста, но все, что я получаю, это сообщения об ошибках о войне, развернутой внутри AppBase.

Среда, в которой я работаю, довольно ограничена - потребуется много тестирования, чтобы иметь возможность изменить конфигурацию среды, поэтому развертывание файла фрагмента контекста в качестве своего рода конечного результата было бы хорошим решением.

Возможно ли это, и если да, то каким должен быть файл контекста и куда он должен идти?

Я использую Tomcat 6.0.14, и, как я уже сказал, среда довольно заблокирована, поэтому было бы сложно изменить конфигурации / структуры папок Tomcat.

Другое решение, конечно, состоит в том, чтобы удалить номер версии из имени продукта, что приемлемо с точки зрения команды разработчиков, но я думаю, что все предпочли бы, чтобы в названии продукта был номер версии для ясности. .

Первое, что приходит мне в голову, - это создать символическую ссылку для вашего веб-приложения. Всякий раз, когда вы меняете версию, просто воссоздайте символическую ссылку.

ln -s /path/to/tomcat/webapps/my-war-3.0.1 /path/to/tomcat/webapps/my-war

А затем создайте context.xml файл в webapps/my-war-3.0.1/WEB-INF чтобы включить символические ссылки:

<?xml version="1.0" encoding="UTF-8"?>

<Context path="/my-war" allowLinking="true">

</Context>