Tomcat распаковывает войны в каталог, отличный от appBase

Мы хотели бы настроить Tomcat следующим образом (где X -SL-> Y представляет символическую ссылку с именем X указывая на путь Y):

  • CATALINA_HOME/webapps -SL-> /var/data/nas/deploymentconfiguration_a
  • /var/data/nas/deploymentconfiguration_a/myapp.war -SL-> /var/data/nas/wars/app1.war

Идея состоит в том, чтобы иметь возможность конфигурировать, какие приложения развертываются на конкретном экземпляре Tomcat, имея серию символических ссылок на WAR в папке конфигурации развертывания и добавляя еще одну символическую ссылку с именем webapps из CATALINA_HOME в конкретную папку конфигурации развертывания.

Многие экземпляры Tomcat указывают на одну и ту же папку конфигурации развертывания.

Надеюсь понятно

Целый /var/data/nas Дерево будет только для чтения.

В ходе испытаний главная проблема, с которой мы сталкиваемся, заключается в том, что Tomcat явно пытается взорвать войну в папке конфигурации развертывания (которую он считает appBase), который только для чтения.

Есть ли способ заставить Tomcat распаковать свои войны в какую-то локальную рабочую папку (я не думаю, что это основано на быстром сканировании исходного кода), или это единственный способ остановить взрыв Tomcat от взрыва? военные файлы в первую очередь?

Мы используем Tomcat 6.

редактировать

Мы собираемся запустить несколько экземпляров Tomcat для одной и той же конфигурации. Таким образом, может быть 10 Tomcats, бегущих против deploymentconfiguration_a и 10 против deploymentconfiguration_b, но может быть некоторая общность между фактическими файлами WAR в каждой конфигурации развертывания (т.е. deploymentconfiguration_a может иметь ВОЙНЫ 1, 2 и 5 в то время как deploymentconfiguration_b может иметь ВОЙНЫ 1, 5 и 7).

Причина, по которой это RO, состоит в том, чтобы избежать случайного изменения конкретной конфигурации, а также чтобы избежать одного случая Tomcat, идущего по стопам другого.

1 ответ

Решение

На основании того, что вы мне дали (и спасибо, что били меня туда-сюда). Я думаю, что это ваши варианты:

  1. Вставьте unpackWars="false" в директиву Host в вашем файле server.xml и запускайте приложения непосредственно из файлов war.
  2. Вручную разверните войны на ваших NAS в правильные каталоги развертывания.

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

Я бы лично выбрал вариант № 1. Если вам по какой-то причине не нужно просматривать отдельные файлы, нет веских причин для запуска с развернутыми файлами. (Если, конечно, у вас плохое приложение, которое должно ссылаться на файлы во время войны...)

Я мог бы также пойти так далеко, чтобы также поставить autoDeploy="off". Разве вы не думаете, что собираетесь изменять файлы военных действий под этими группами Tomcats на месте?

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