我有一个Play Framework 2.0应用程序,我想在Windows Server 2008 R2上部署(生产)。如何让它作为服务运行?
答案 0 :(得分:42)
这在Windows 7上对我有用:
转到您的游戏!命令行中的app文件夹并键入
play dist
在C:\ my_app \ something-SNAPSHOT \中创建一个新文件start.bat并用以下命令填充:
java -cp "C:\my_app\something-SNAPSHOT\lib\*" play.core.server.NettyServer
保存并启动start.bat。您的播放应用必须像往常一样开始工作。看看服务器的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 launch
runConsole.bat
如果应用程序启动,请执行Ctrl c
(并回答 y )以终止批处理文件并继续执行下一步。
安装服务启动(以管理员身份运行)
installService.bat
开始服务启动
startService.bat
现在,您可以在Windows服务中看到“我的应用名称”服务。
要停止服务,您可以使用stopService.bat
。要将其卸载uninstallService.bat
。
答案 1 :(得分:3)
您应该看一下这个问题:Run Java application as a service
您必须使用play dist
命令,然后调整start
脚本才能在Windows上运行。
答案 2 :(得分:1)
如果您在第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 脚本。不这样做导致我在这里发布的悲痛:
How do I fix server Oops error when deploying Play Framework 2.0 application as a Windows service?
最后,确保在打开DOS命令窗口时以管理员身份运行。在我进行部署时,我无法在不作为管理员的情况下运行 installService.bat 脚本。
答案 3 :(得分:0)
我们在此处的其他答案中列出的start.bat
方法遇到了困难。两个主要问题是当服务器决定在Patch Tuesday上重新启动时缺少引导,并且需要使用VBS和其他装饰来防止需要保持命令窗口打开以保持JVM活动。
我们已成功使用Commons Daemon在Windows上运行Play应用程序。
我们使用dist
打包应用程序进行分发,然后使用Commons Daemon安装为Windows服务。
答案 4 :(得分:0)
在较新的播放版本中,您可以使用sbt-native-packager
几乎自动准备安装程序和服务
http://www.scala-sbt.org/sbt-native-packager/formats/windows.html