Windows Server 2008 R2に展開(本番)したいPlay Framework2.0アプリケーションがあります。サービスとして実行するにはどうすればよいですか?
これはWindows7で私のために働いた:
あなたのプレイに行きます!コマンドラインでアプリフォルダーと入力します
play dist
C:\ my_app\something-SNAPSHOT \で、新しいファイルstart.batを作成し、次のようなコマンドで入力します。
Java -cp "C:\my_app\something-SNAPSHOT\lib\*" play.core.server.NettyServer
保存してstart.batを起動します。 Playアプリが起動し、通常どおりに機能する必要があります。サーバーのPIDを見てください。次のステップで使用します。
コマンドプロンプトを使用して、C:\ my_app\yajsw\batに移動し、次のように入力します。
genConfig.bat < PID from previous step >
C:\ my_app\yajsw\conf\wrapper.confを生成しました。このファイルを編集し、次のようにこれらのパラメータを変更します。
wrapper.ntservice.name=My App Name
wrapper.ntservice.displayname=My App Name
ファイルを保存。
6.で開始したstart.batスクリプトを終了し、C:\ my_app\yajsw\bat起動します。
runConsole.bat
アプリが起動したら、Ctrl c
を実行して(そしてyと答えて)バッチファイルを終了し、次の手順に進みます。
サービス起動をインストールするには(管理者として実行)
installService.bat
サービス開始を開始するには
startService.bat
これで、Windowsサービスに「マイアプリ名」サービスが表示されます。サービスを停止するには、stopService.bat
を使用できます。それをアンインストールするにはuninstallService.bat
。
この質問を見てください: Run Java application as a service
Windowsで実行するには、play dist
コマンドを使用してから、start
スクリプトを調整する必要があります。
ステップ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。で開始したスクリプト。これをしないと、私がここに投稿した悲しみが発生しました:
最後に、DOSコマンドウィンドウを開くときは、必ず管理者として実行してください。デプロイメントを行っているときに、管理者でないとinstallService.batスクリプトを実行できませんでした。
使用できる新しいプレイバージョンの前にsbt-native-packager
インストーラーとサービスをほぼ自動的に準備します
http://www.scala-sbt.org/sbt-native-packager/formats/windows.html
ここにある他の回答にリストされているstart.bat
メソッドに問題がありました。 2つの主要な問題は、サーバーが火曜日のパッチで再起動することを決定したときのブートストラップの欠如と、JVMを存続させるためにコマンドウィンドウを開いたままにする必要を防ぐためにVBSやその他の装飾を使用する必要があることです。
Commons Daemon を使用して、本番環境のWindowsでPlayアプリケーションを実行することに成功しました。
dist
を使用してアプリケーションをパッケージ化し、配布してから、CommonsDaemonを使用してWindowsサービスとしてインストールします。