18

我有一个 Play Framework 2.0 应用程序,我想在 Windows Server 2008 R2 上部署(生产)。如何让它作为服务运行?

4

5 回答 5

44

这在 Windows 7 上对我有用:

  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

于 2012-11-26T13:12:39.193 回答
3

你应该看看这个问题:Run Java application as a service

您必须使用该play dist命令,然后调整start脚本才能在 Windows 上运行。

于 2012-08-25T14:42:51.330 回答
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脚本。不这样做会导致我在这里发布的悲伤:

将 Play Framework 2.0 应用程序部署为 Windows 服务时,如何修复服务器 Oops 错误?

最后,确保在打开 DOS 命令窗口时以管理员身份运行。在进行部署时,如果不是管理员,我无法运行installService.bat脚本。

于 2013-02-03T19:44:57.253 回答
0

start.bat我们对此处其他答案中列出的方法有困难。两个主要问题是当服务器决定在补丁星期二重新启动时缺乏引导,以及需要使用 VBS 和其他装饰来防止需要保持命令窗口打开以保持 JVM 活动。

我们已经成功地使用Commons Daemon在 Windows 上运行 Play 应用程序。

我们使用dist打包应用程序进行分发,然后使用 Commons Daemon 作为 Windows 服务安装。

于 2014-02-28T15:42:58.517 回答
0

您可以使用sbt-native-packager几乎自动准备安装程序和服务的较新的播放版本

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

于 2016-05-18T17:11:45.420 回答