Перезапустите кота, когда файл класса будет изменен?

Я использую следующий много:

:p модификатор для печати результата истории. Например,

!!:p

распечатает последнюю команду, таким образом, можно проверить, что это корректно прежде, чем выполнить его снова. Просто войдите !! для выполнения его.

В том же духе:

!?foo?:p

будет искать Вашу историю новую команду, которая содержала строку 'нечто', и распечатайте его.

, Если Вы не должны печатать,

!?foo

, делает поиск и немедленно выполняет его.

23
задан UpHelix 5 April 2013 в 22:21
поделиться

7 ответов

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


При работе с Collection URI типа: http://example.com/resources/

] GET : список членов коллекции с указанием их URI для дальнейшей навигации. Например, перечислите все автомобили на продажу.

PUT : Значение определяется как «заменить всю коллекцию другой коллекцией».

POST : создать новую запись в коллекции, ID которой равен присваивается автоматически коллекцией. Созданный идентификатор обычно включается как часть данных, возвращаемых этой операцией.

DELETE : Значение определяется как " в документации говорится:

Установите значение true , если вы хотите, чтобы Каталина отслеживала классы в / WEB-INF / classes / и / WEB- INF / lib для изменений и автоматически перезагружать веб-приложение, если изменение обнаружено. Эта функция очень полезна во время разработки приложений, но требует значительных затрат времени выполнения и не рекомендуется для использования в развернутых производственных приложениях. Вот почему по умолчанию для этого атрибута установлено значение false. Однако вы можете использовать веб-приложение Manager для запуска перезагрузки развернутых приложений по запросу.

30
ответ дан 29 November 2019 в 01:45
поделиться

Конечно, есть! Запустите Tomcat в режиме разработки, после чего каждое веб-приложение перезапустится после повторного развертывания.

Из документации Tomcat:

Сервлет, реализующий Jasper, настраивается с использованием параметров инициализации в вашем глобальном $ CATALINA_BASE / conf / web.xml.

...

разработка - Используется ли Jasper в режиме разработки (будет проверять наличие модификации JSP при каждом доступе)? истина или ложь, по умолчанию истина.

Есть настройки, которые вы можете изменить, чтобы указать, что именно Tomcat будет искать для проверки обновлений. Обычно я развертываю отдельные файлы классов в соответствующий каталог в WEB-INF / classes , а затем

касаюсь WEB-INF / web.xml

, чтобы запустить перезапуск приложения; Я думаю, что web.xml - это один из файлов, который Tomcat проверяет по умолчанию.

7
ответ дан 29 November 2019 в 01:45
поделиться

В более общем плане причина, по которой вы должны это делать, заключается в том, что в Java, когда загрузчик классов загружает класс, он не может его выгрузить. Что нужно сделать Tomcat, так это использовать новый загрузчик классов и перезагрузить все необходимые классы.

6
ответ дан 29 November 2019 в 01:45
поделиться

Проверьте JRebel .

2
ответ дан 29 November 2019 в 01:45
поделиться

Если вы разрабатываете, ваша IDE должна иметь возможность делать это прозрачно на подходящем сервере. Например, динамический веб-проект в Eclipse знает, как общаться с Tomcat.

Если вы выполняете развертывание, создайте WAR-файлы и разверните их. Tomcat знает, как повторно развернуть WAR-файл.

1
ответ дан 29 November 2019 в 01:45
поделиться

Если вы используете файлы WAR для развертывания, вы можете установить autoDeploy = true в конфигурации Tomcat, что заставит Tomcat следить за корнем веб-приложения («webapps» по умолчанию) для новых или измененных файлов WAR. Если такой файл найден, он автоматически развертывается.

Однако, как сказал Паскаль Тивент, вы можете использовать приложение Tomcat Manager (/ manager / html) для запуска, остановки, развертывания и отмены развертывания определенных приложений. Если файлы, которые вы изменяете, находятся в конкретном приложении, это хороший способ заставить Tomcat распознавать изменения.

0
ответ дан 29 November 2019 в 01:45
поделиться

Помимо установки autoDeploy = true в server.conf, вы также должны быть осторожны, чтобы не помещать какие-либо классы в общий загрузчик классов. Классы, загруженные загрузчиком общих классов, не могут быть повторно загружены.

0
ответ дан 29 November 2019 в 01:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: