Переопределить Tomcat по умолчанию при запуске - PullRequest
0 голосов
/ 03 декабря 2011

В настоящее время я настраиваю свои сборки Ant для цели deploy-local, которая создает WAR моего веб-приложения, а затем просто копирует этот файл WAR в локальный каталог webapps/ моего Tomcat.

Проблема заключается в том, что каждый раз, когда я запускаю Tomcat, он сначала распаковывает все WAR-файлы в своем каталоге webapps/ в папки, поэтому MyWebApp.war распаковывается в каталог с именем MyWebApp/ до завершения загрузки Tomcat.

Очевидно, что Tomcat затем развертывается из этого скопированного каталога (не моей WAR). Я доказал это, остановив Tomcat, удалив WAR (но оставив скопированный каталог в такте), а затем перезапустив Tomcat ... это работает!

Огромная боль здесь в том, что каждый раз, когда я настраиваю свои проекты и запускаю deploy-local, чтобы проверить их, я должен сначала вручную удалить скопированный каталог в webapps/ (иначе Tomcat будет игнорировать новый WAR-файл скопирован из Ant и вместо этого просто развертывается из старого скопированного каталога!).

Это стало очень раздражающим! Я говорил с моим техническим руководителем об этом, и у него, похоже, нет той же проблемы (мы оба используем Tomcat 7.0.19 ). Более того, экземпляры Tomcat, которые мы запускаем в Dev, QA и Production, также не страдают от этого. Это говорит мне о проблеме конфигурации на моем конце.

Пожалуйста, посоветуйте !!! И заранее спасибо!

1 Ответ

0 голосов
/ 18 декабря 2012

Вы можете просто удалить каталог с помощью ant и позволить Tomcat автоматически развернуть новое веб-приложение, поместив его в свой build.xml:

<target name="deploy" depends="war" description="Deployment target.">
    <delete dir="${tomcat.home.dir}/webapps/MYWEBAPP"/>
    <delete file="${tomcat.home.dir}/webapps/MYWEBAPP.war"/>
    <copy file="${build.dir}/MYWEBAPP.war" todir="${tomcat.home.dir}/webapps"/>
</target>

Запуск ant deploy в этом случае поможет.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...