Подтвердить что ты не робот

Необходимость перезапуска tomcat всякий раз, когда вы делаете изменения

Есть ли способ перезапустить tomcat каждый раз, когда в java-код делается небольшое изменение?

4b9b3361

Ответ 1

Установите атрибут reloadable элемента <Context> в context.xml до true.

<Context reloadable="true">

Затем Tomcat будет отслеживать изменения в /WEB-INF/classes и /WEB-INF/lib и при необходимости перезагружать.

Если вы используете IDE, это также настраивается как настройка сервера. Вот как это выглядит в Eclipse:

alt text

Ответ 2

Отъезд Jrebel. Он обнаруживает изменения кода, автоматически компилирует и развертывает войну, не перезагружая сервер. Это экономит много времени и повышает производительность.

Ответ 3

Если вам нужно модифицировать классы без перезапуска, рассмотрите Dynamic Code Evolution VM в дополнение к ответу BalusC, чтобы избежать ошибок пермг для разработки.

Ответ 4

Даже если Tomcat, как правило, очень быстро запускается, он очень сильно зависит от вашего приложения, как быстро он может инициализировать себя. Если есть чертовски большой контекст приложения Spring, со всеми видами интеграции и сопоставлениями Hibernate, я был бы уверен, что загрузка займет 1,5 секунды, чтобы запустить Tomcat, но за 1,5 минуты для запуска вашего приложения. JRebel действительно может помочь здесь.

Ответ 5

Вам не нужно перезапускать Tomcat, просто повторно разверните приложение. Существуют разные способы сделать это (google "tomcat deploy", и вы получите много указателей), но самым простым является копирование вновь созданного военного файла в каталог Tomcat Webapps. Tomcat автоматически обнаружит, когда файл будет обновлен, и перезапустите приложение.

Ответ 6

Вы также можете попробовать DCEVM. Я написал, как настроить с помощью tomcat + eclipse: Spring -mvc + Velocity + DCEVM

Ответ 7

Да. Вы можете установить tomcat в autodeploy, и он автоматически подберет изменения. Он все еще передислоцирует, но он намного быстрее. Просто добавьте "autodeploy =" true "к вашей записи Host в файле конфигурации server.xml.

То, что мы делаем, где я работаю. Когда пришло время обновить одно из наших приложений, мы просто отбрасываем новый WAR файл поверх старого, а Tomcat распаковывает и разворачивает его автоматически.

Ответ 8

Я использовал Spring Загруженный агент JVM, чтобы избежать перезапуска Tomcat или перезагрузки приложения (что может занять некоторое время для Spring веб-приложения). Я настраиваю свой сервер Tomcat в Eclipse вместе с "Автоматически публиковать, когда меняются ресурсы", чтобы изменения вступили в силу почти сразу.

Если вы используете Eclipse с интегрированным Tomcat (WTP), вы можете увидеть шаги, которые я сделал здесь: fooobar.com/info/65088/...