Tomcat не обновляет WAR и отказывается умирать - Развертывание блюз - PullRequest
3 голосов
/ 16 февраля 2012

Я развертываю 3 WAR-файла, используя Ant-скрипты, и останавливаюсь и запускаю tomcat, используя startup / shutdown.sh.Когда я делаю shutdown.sh, процесс Tomcat не умирает.Если я забуду выполнить «lsof -i: 8080» с последующим уничтожением, то tomcat все равно запускается, но Firefox не загружает страницу.Почему Tomcat не умирает изящно?

2-я проблема: Ранее я использовал Eclipse для обработки запуска / остановки сервера Tomcat.В случае обновления файла js внутри WebContent достаточно просто запустить сайт в режиме debug = true.Но теперь, при использовании Tomcat из командной строки, мне нужно заново сгенерировать файл WAR, а затем перезапустить Tomcat, чтобы изменения вступили в силу.Почему это так?

Соответствующие части моего файла conf / server.xml:

<Host appBase="/home/local/deploy/eclipse/webapps" autoDeploy="true" name="localhost" unpackWARs="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log." resolveHosts="false" suffix=".txt"/>

Да, я не установил контекстные пути явно, поскольку autoDeploy был верным, и Tomcat делает это для меня.Так .Может ли это быть проблемой?

1 Ответ

1 голос
/ 18 февраля 2012

Ваша первая проблема не так ясна, и действительно часто случается со мной. Иногда мне просто нужно убить -9. Это может быть связано с тем, что Tomcat каким-то образом удерживает активный поток контейнера.

Вторая проблема немного проще. Если вы используете экземпляр tomcat, который является внешним по отношению к вашей установке Eclipse, вы не сможете "легко" использовать некоторые функции горячего развертывания. Как вы делали это в прошлом, вы, скорее всего, использовали плагин eclipse wst. Это позволяет контейнеру tomcat работать и управляться в затмении.

Всякий раз, когда вы развертываете приложение в экземпляре eclipse wst tomcat, вы фактически развертываете его в папке подключаемых модулей, которая отражает tomcat.

Папка плагина обычно находится в $ eclispe_home / .metadata / .plugins / org.eclispe.wst.server.core / tmp0 / wtpwebapps.

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

...