web-dev-qa-db-ja.com

Play Framework 2.0アプリケーションをWindowsサービスとして実行するにはどうすればよいですか?

Windows Server 2008 R2に展開(本番)したいPlay Framework2.0アプリケーションがあります。サービスとして実行するにはどうすればよいですか?

18
Peter Moberg

これはWindows7で私のために働いた:

  1. フォルダC:\ my_appを作成します
  2. あなたのプレイに行きます!コマンドラインでアプリフォルダーと入力します

    play dist

  3. 生成された「something-SNAPSHOT」フォルダーをC:\ my_appにコピーします
  4. ダウンロード [〜#〜] yajsw [〜#〜] そしてC:\ my_appに抽出します
  5. C:\ my_app\something-SNAPSHOT \で、新しいファイルstart.batを作成し、次のようなコマンドで入力します。

    Java -cp "C:\my_app\something-SNAPSHOT\lib\*" play.core.server.NettyServer

  6. 保存してstart.batを起動します。 Playアプリが起動し、通常どおりに機能する必要があります。サーバーのPIDを見てください。次のステップで使用します。

  7. コマンドプロンプトを使用して、C:\ my_app\yajsw\batに移動し、次のように入力します。

    genConfig.bat < PID from previous step >

  8. C:\ my_app\yajsw\conf\wrapper.confを生成しました。このファイルを編集し、次のようにこれらのパラメータを変更します。

    wrapper.ntservice.name=My App Name
    wrapper.ntservice.displayname=My App Name


    ファイルを保存。

  9. 6.で開始したstart.batスクリプトを終了し、C:\ my_app\yajsw\bat起動します。

    runConsole.bat

    アプリが起動したら、Ctrl cを実行して(そしてyと答えて)バッチファイルを終了し、次の手順に進みます。

  10. サービス起動をインストールするには(管理者として実行

    installService.bat

  11. サービス開始を開始するには

    startService.bat

これで、Windowsサービスに「マイアプリ名」サービスが表示されます。サービスを停止するには、stopService.batを使用できます。それをアンインストールするにはuninstallService.bat

42
Mikhail

この質問を見てください: Run Java application as a service

Windowsで実行するには、play distコマンドを使用してから、startスクリプトを調整する必要があります。

3
ndeverge

ステップ5。でエラーが発生した場合は、次のようになります。

_Play server process ID is 1132_

_[info] play - database [default] connected at jdbc:h2:file:db/h2/play_

_[warn] play - Your production database [default] needs evolutions!_

_... bunch of SQL statements in the console ..._

[warn] play - Run with -DapplyEvolutions.default=true if you want to run them automatically (be careful)

_Oops, cannot start the server._

_@6gme0o9k5: Database 'default' needs evolution!_

次に、代わりに次のようなコマンドを実行します。

_Java -cp "C:\my_app\something-SNAPSHOT\lib\*" -DapplyEvolutions.default=true play.core.server.NettyServer_

ミハイルが説明したプロセスの2つの追加項目が私をつまずかせました:

まず、ステップ9。の前に、start.batステップ6。で開始したスクリプト。これをしないと、私がここに投稿した悲しみが発生しました:

サーバーを修正するにはどうすればよいですかOopsエラー?

最後に、DOSコマンドウィンドウを開くときは、必ず管理者として実行してください。デプロイメントを行っているときに、管理者でないとinstallService.batスクリプトを実行できませんでした。

1

使用できる新しいプレイバージョンの前にsbt-native-packagerインストーラーとサービスをほぼ自動的に準備します

http://www.scala-sbt.org/sbt-native-packager/formats/windows.html

0
mgosk

ここにある他の回答にリストされているstart.batメソッドに問題がありました。 2つの主要な問題は、サーバーが火曜日のパッチで再起動することを決定したときのブートストラップの欠如と、JVMを存続させるためにコマンドウィンドウを開いたままにする必要を防ぐためにVBSやその他の装飾を使用する必要があることです。

Commons Daemon を使用して、本番環境のWindowsでPlayアプリケーションを実行することに成功しました。

distを使用してアプリケーションをパッケージ化し、配布してから、CommonsDaemonを使用してWindowsサービスとしてインストールします。

0
kpollard