1

Jettyを本番サーバーで実行したいのですが、デプロイする新しいコードパッケージがある場合は、「sbtパッケージ」を実行して、コードをwarファイルにパッケージ化してからコピーできるようにしたいと思います。本番マシンのwebappフォルダーに移動します。

それは合理的ですか?もしそうなら、Jettyをデーモンとして起動するための最良の方法は何ですか?新しいファイルが表示され、アプリが自動的にリロードされますか、それとも何らかの方法で再起動する必要がありますか?

4

1 に答える 1

2

あなたが提案していることの主な問題は、サーバーに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サイトを参照してください。サーバーの構成方法に関しては、バージョンが異なれば大幅に異なる可能性があります。

于 2012-05-18T04:28:17.700 に答える