Подтвердить что ты не робот

Как запустить приложение Play Framework 2.0 в качестве службы Windows?

У меня есть приложение Play Framework 2.0, которое я хочу развернуть (создать) на Windows Server 2008 R2. Как заставить его работать как сервис?

4b9b3361

Ответ 1

Это работало для меня в Windows 7:

  • Создать папку C:\my_app
  • Перейдите в свою игру! 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. Ваше игровое приложение должно начинаться и работать как обычно. Посмотрите на 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


    Сохранить файл.

  • Завершите start.bat script, который вы начали в 6. затем, в C:\my_app\yajsw\bat запуск

    runConsole.bat

    Если приложение запустится, выполните Ctrl c (и ответьте y), чтобы завершить командный файл и перейти к следующему шагу.

  • Чтобы установить запуск службы (запустите от имени администратора)

    installService.bat

  • Чтобы запустить запуск службы

    startService.bat

Теперь вы можете увидеть свою службу "Имя моего приложения" в службах Windows. Для остановки службы вы можете использовать stopService.bat. Чтобы удалить его uninstallService.bat.

Ответ 3

Если вы получили сообщение об ошибке в шаге 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. убедитесь, что вы завершаете start.bat script, который вы начали с шага 6 .. Не делая этого вызвало печаль, которую я опубликовал здесь:

Как исправить ошибку сервера Ошибка при развертывании приложения Play Framework 2.0 в качестве службы Windows?

Наконец, убедитесь, что вы Запуск от имени администратора, когда вы открываете окно командной строки DOS. Я не смог запустить installService.bat script, не будучи администратором, когда делал свое развертывание.

Ответ 4

У нас были трудности с методами start.bat, перечисленными в других ответах здесь. Две основные проблемы: отсутствие загрузки, когда сервер решает перезагрузить себя в Patch Tuesday, а также требование использовать VBS и другое украшение, чтобы предотвратить необходимость открывать окно команд, чтобы сохранить JVM в живых.

У нас был успех с использованием Commons Daemon для запуска приложений Play для Windows на производстве.

Мы используем dist для упаковки приложения для распространения, а затем для установки в качестве службы Windows с использованием Demon Commons.