Основная проблема с тем, что вы предлагаете, заключается в том, что Конфигурация, необходимая для того, чтобы сервер прослушивал или контролировал папку webapps, заключается в том, что будет производственный хит.
Хотя этот тип конфигурации отлично подходит для разработки, не рекомендуется для производственных применений.
С учетом этого вы ищете ContextDeployer, который можно настроить в файле jetty.xml. Обратитесь к документации Причала для конкретной версии Jetty для точных деталей:
<!-- =========================================================== -->
<!-- Configure the context deployer -->
<!-- A context deployer will deploy contexts described in -->
<!-- configuration files discovered in a directory. -->
<!-- The configuration directory can be scanned for hot -->
<!-- deployments at the configured scanInterval. -->
<!-- -->
<!-- This deployer is configured to deploy contexts configured -->
<!-- in the $JETTY_HOME/contexts directory -->
<!-- -->
<!-- =========================================================== -->
<Call name="addLifeCycle">
<Arg>
<New class="org.mortbay.jetty.deployer.ContextDeployer">
<Set name="contexts"><Ref id="Contexts"/></Set>
<Set name="configurationDir"><SystemProperty name="jetty.home" default="."/>/contexts</Set>
<Set name="scanInterval">5</Set>
</New>
</Arg>
</Call>
«scanInterval» является то, что говорит серверу отслеживать папку контекстов. Каждые 5 секунд он проверяет, не изменились ли файлы.
Наконец, чтобы начать Jetty как демон, просто использовать сценарии они предоставляют вам в папке/Bin:
./jetty.sh start
Чтобы остановить Jetty, запустите:
./jetty.sh stop
и перезапустить Jetty запустите:
./jetty.sh restart
Опять же, см The Jetty Documentation или The Webtide Website для точного документа для любой версии Jetty, в которой вы работаете. Различные версии могут сильно отличаться с точки зрения настройки сервера.
По моему опыту, перезагрузки контекста всегда несовместимы с памятью и в конечном итоге съедят доступное пространство PermGen в JVM, на котором работает Jetty. Повторный запуск, к сожалению, необходим, по крайней мере, до того, как закончится память. Вы можете иметь дело с простоями перезагрузки, использовать перезапуск перезагрузки за балансировщиком нагрузки или использовать такое решение, как LiveRebel. – brandon
@brandon - Спасибо за разъяснение. Я уже упоминал в своем ответе, что это не рекомендуется для производства, но вы поднимаете действительную точку, что это, возможно, следует выделить еще раз. Обновит мой ответ. – jmort253
+1 для балансировки нагрузки, сохранение производительности и времени безотказной работы, беспроигрышный – virtualeyes