Jettyを本番サーバーで実行したいのですが、デプロイする新しいコードパッケージがある場合は、「sbtパッケージ」を実行して、コードをwarファイルにパッケージ化してからコピーできるようにしたいと思います。本番マシンのwebappフォルダーに移動します。
それは合理的ですか?もしそうなら、Jettyをデーモンとして起動するための最良の方法は何ですか?新しいファイルが表示され、アプリが自動的にリロードされますか、それとも何らかの方法で再起動する必要がありますか?
あなたが提案していることの主な問題は、サーバーにwebappsフォルダーをリッスンまたはモニターさせるために必要な構成は、本番環境にヒットすることです。
このタイプの構成は開発には最適ですが、実稼働アプリケーションにはお勧めしません。
そうは言っても、あなたが探しているのはContextDeployerであり、これはjetty.xmlで構成できます。正確な詳細については、Jettyの特定のバージョンについて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
繰り返しになりますが、実行しているJettyのバージョンに関係なく、正確なドキュメントについては、JettyのドキュメントまたはWebtideWebサイトを参照してください。サーバーの構成方法に関しては、バージョンが異なれば大幅に異なる可能性があります。