我有一个 Play Framework 2.0 应用程序,我想在 Windows Server 2008 R2 上部署(生产)。如何让它作为服务运行?
5 回答
这在 Windows 7 上对我有用:
- 创建文件夹 C:\my_app
去你的游戏!命令行中的应用程序文件夹并键入
play dist
- 将生成的“something-SNAPSHOT”文件夹复制到 C:\my_app
- 下载YAJSW并解压到 C:\my_app
在 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
您必须使用该play dist
命令,然后调整start
脚本才能在 Windows 上运行。
如果您在第 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
米哈伊尔描述的过程中的另外两个项目让我感到困惑:
首先,在第 9 步之前,请确保终止您在第 6 步中启动的start.bat脚本。不这样做会导致我在这里发布的悲伤:
将 Play Framework 2.0 应用程序部署为 Windows 服务时,如何修复服务器 Oops 错误?
最后,确保在打开 DOS 命令窗口时以管理员身份运行。在进行部署时,如果不是管理员,我无法运行installService.bat脚本。
start.bat
我们对此处其他答案中列出的方法有困难。两个主要问题是当服务器决定在补丁星期二重新启动时缺乏引导,以及需要使用 VBS 和其他装饰来防止需要保持命令窗口打开以保持 JVM 活动。
我们已经成功地使用Commons Daemon在 Windows 上运行 Play 应用程序。
我们使用dist
打包应用程序进行分发,然后使用 Commons Daemon 作为 Windows 服务安装。
您可以使用sbt-native-packager
几乎自动准备安装程序和服务的较新的播放版本
http://www.scala-sbt.org/sbt-native-packager/formats/windows.html