Как обновить веб-приложение Tomcat без перезапуска всей службы?
Я новичок в Tomcat. У нас есть dev машина с около 5 приложений работает. Несмотря на то, что это dev, он используется нашими клиентами довольно сильно во время тестирования.
Итак, скажем, нам нужно внести одно небольшое изменение в один файл класса. Прямо сейчас, мы должны выключить Tomcat (влияет на другие четыре приложения), удалить WAR файл (и каталог веб-приложений), повторно разверните новый WAR файл и перезапустите Tomcat.
конечно, это расстраивает несколько человек, потому что он разрушает все зарегистрированные в сеансах для всех приложений.
есть ли лучший способ сделать это? Я имею в виду, есть ли способ только перезагрузить класс что изменилось, а не все на компьютере разработчика?
спасибо.
4 ответов:
вы пробовали использовать менеджер приложения Tomcat? Это позволяет вам отменить развертывание / развернуть файлы war без выключения Tomcat.
Если вы не хотите использовать приложение Manager, вы также можете удалить файл war из каталога webapps, Tomcat отменит развертывание приложения через короткий промежуток времени. Затем вы можете скопировать файл war обратно в каталог, и Tomcat развернет файл war.
Если вы используете Tomcat на Windows, возможно, вам придется настроить ваш контекст, чтобы не блокировать различные файлы.
Если вы абсолютно не можете иметь никаких простоев, вы можете посмотреть на параллельные развертывания Tomcat 7 вы можете одновременно развернуть несколько версий веб-приложения с одним и тем же контекстным путем. Для сопоставления запросов с контекстной версией используются следующие правила:
- если в запросе отсутствует информация о сеансе, используйте последнюю версию версия.
- если информация о сеансе присутствует в запросе, проверьте менеджер сеансов каждой версии для соответствующего сеанса, и если он найден, используйте эту версию.
- если информация о сеансе присутствует в запросе, но соответствующий сеанс не найден, используйте последнюю версию.
есть несколько простых способов.
просто нажмите веб.xml любого веб-приложения.
touch /usr/share/tomcat/webapps/<WEBAPP-NAME>/WEB-INF/web.xmlвы также можете обновить определенный файл jar в WEB-INF/lib, а затем коснуться web.xml, а не создание всего файла войны и его повторное развертывание.
удалить каталог webapps/YOUR_WEB_APP, Tomcat начнет развертывание war в течение 5 секунд (при условии, что ваш файл war все еще существует в webapps папка.)
обычно перезапись файла войны с новой версией автоматически перераспределяется tomcat. Если нет, вы можете коснуться паутины.XML, как описано выше.
скопировать над уже взорванным "каталогом" в вашу папку webapps
в каталоге conf apache tomcat вы можете найти контекст.XML-файл. В этом теге редактирования как Context reloadable= "true">. это должно решить проблему и вам не нужно перезагружать сервер
Comments