Я новичок в Tomcat
. У нас есть машина разработчика, на которой запущено около 5 приложений. Несмотря на то, что это разработчик, наши клиенты довольно активно используют его во время тестирования.
Скажем, нам нужно внести одно небольшое изменение в один файл класса. Прямо сейчас нам нужно выключить Tomcat (что влияет на остальные четыре приложения), удалить WAR
файл (и каталог веб-приложения), WAR
повторно развернуть новый файл и перезапустить Tomcat
.
Конечно, это расстраивает некоторых людей, потому что уничтожает все сеансы, в которые вошли все приложения.
Есть лучший способ сделать это? Я имею в виду, есть ли способ перезагрузить только КЛАСС, который изменился, а не все на машине разработчика?
Спасибо.
tomcat
deployment
war
cbmeeks
источник
источник
Ответы:
Вы пробовали использовать приложение Tomcat Manager ? Он позволяет вам отменять развертывание / развертывание файлов войны без выключения Tomcat.
Если вы не хотите использовать приложение Manager, вы также можете удалить файл war из каталога webapps, Tomcat удалит приложение через короткий промежуток времени. Затем вы можете скопировать военный файл обратно в каталог, и Tomcat развернет военный файл.
Если вы используете Tomcat в Windows, вам может потребоваться настроить контекст, чтобы не блокировать различные файлы.
Если у вас абсолютно не может быть простоя, вы можете посмотреть на Tomcat 7. Параллельные развертывания. Вы можете развернуть несколько версий веб-приложения с одним и тем же контекстным путем одновременно. Правила, используемые для сопоставления запросов с версией контекста, следующие:
источник
Есть несколько простых способов.
Просто коснитесь web.xml любого веб-приложения.
Вы также можете обновить определенный файл jar в WEB-INF / lib, а затем коснуться web.xml, вместо того, чтобы создавать весь файл войны и развертывать его снова.
Удалите каталог webapps / YOUR_WEB_APP, Tomcat начнет развертывание войны в течение 5 секунд (при условии, что ваш файл войны все еще существует в папке webapps).
Обычно перезапись военного файла новой версией автоматически выполняется повторно с помощью tomcat. Если нет, вы можете коснуться web.xml, как описано выше.
Скопируйте уже развернутый "каталог" в папку веб-приложений.
источник
$CATALINA_BASE/conf/context.xml
. WEB-INF / web.xml отслеживается на предмет изменений. Другие ресурсы могут быть легко перечислены там по мере необходимости.В каталоге conf apache tomcat вы можете найти файл context.xml. В этом теге редактирования как < Context reloadable = "true" >. это должно решить проблему, и вам не нужно перезапускать сервер
источник