Может ли Tomcat иногда самостоятельно развертывать WAR-файлы? - PullRequest
3 голосов
/ 14 октября 2011

У меня есть веб-приложение, которое развернуто в виде файла WAR на сервере Tomcat 6.Он хранит некоторые данные в каталоге внутри самого приложения.Эти файлы перезаписываются при развертывании новой версии приложения, но их резервное копирование и повторное добавление тривиально.

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

1 Ответ

5 голосов
/ 14 октября 2011

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

<Host autoDeploy="true">

в вашем /conf/server.xml, и вы редактируете один из ресурсов в расширенной WAR. Но этот параметр на самом деле не рекомендуется для производственных сред, поскольку он может привести к утечкам памяти . Это также по умолчанию отключено.

Тем не менее, я настоятельно рекомендую поместить те данные, о которых вы говорите, за пределы WAR. Если предполагается, что они являются частью пути к классам среды выполнения веб-приложения, просто поместите их в фиксированный путь к файловой системе вне Tomcat, например, /var/webapp/config и измените свойство shared.loader /conf/catalina.properties, чтобы указать этот путь:

shared.loader = /var/webapp/config

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

...