У меня есть сервер 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>