secret runprod play framework deploy playframework windows-server-2008 playframework-2.0 windows-server-2008-r2

playframework - runprod - ¿Cómo ejecuto una aplicación Play Framework 2.0 como un servicio de Windows?



play http secret key (5)

Debería echar un vistazo a esta pregunta: ejecute la aplicación Java como un servicio

Tendrá que usar el comando play dist y luego adaptar el script de start para ejecutarse en Windows.

Tengo una aplicación Play Framework 2.0 que deseo implementar (producción) en Windows Server 2008 R2. ¿Cómo puedo hacer que funcione como un servicio?


Esto me funcionó en Windows 7:

  1. Crear carpeta C: / my_app
  2. ¡Ve a tu juego! carpeta de la aplicación en la línea de comandos y el tipo

    play dist

  3. Copie la carpeta "something-SNAPSHOT" generada en C: / my_app
  4. Descargue YAJSW y extraiga a C: / my_app
  5. En C: / my_app / something-SNAPSHOT / crea un nuevo archivo start.bat y llénalo con un comando como este:

    java -cp "C:/my_app/something-SNAPSHOT/lib/*" play.core.server.NettyServer

  6. Guárdalo y ejecuta start.bat. Tu aplicación de juego debe comenzar y funcionar como siempre. Echa un vistazo a PID del servidor. Lo usarás en el siguiente paso.

  7. Ahora, usando el símbolo del sistema, vaya a C: / my_app / yajsw / bat y escriba

    genConfig.bat < PID from previous step >

  8. Generó C: / my_app / yajsw / conf / wrapper.conf. Edite este archivo y cambie estos parámetros de esta manera:

    wrapper.ntservice.name=My App Name
    wrapper.ntservice.displayname=My App Name


    Guardar el archivo.

  9. Termine el script start.bat que inició en 6. luego, en C: / my_app / yajsw / bat launch

    runConsole.bat

    Si se inicia la aplicación, haga Ctrl c (y responda y ) para terminar el archivo por lotes y continúe con el siguiente paso.

  10. Para instalar el servicio de inicio ( Ejecutar como administrador )

    installService.bat

  11. Para iniciar el lanzamiento del servicio

    startService.bat

Ahora puede ver su servicio "Nombre de mi aplicación" en los servicios de Windows. Para detener el servicio puede usar stopService.bat . Para desinstalarlo uninstallService.bat .



Si obtienes un error en el paso 5, se ve algo como esto:

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!

A continuación, ejecute el comando como este en su lugar:

java -cp "C:/my_app/something-SNAPSHOT/lib/*" -DapplyEvolutions.default=true play.core.server.NettyServer

Dos artículos adicionales en el proceso que Mikhail describió me hicieron saltar:

Primero, antes del paso 9. , asegúrese de terminar la secuencia de comandos start.bat que inició en el paso 6 .. No hacerlo causó el dolor que publiqué aquí:

¿Cómo soluciono el error de servidor Oops al implementar la aplicación Play Framework 2.0 como un servicio de Windows?

Por último, asegúrese de ejecutar como administrador cuando abra la ventana de comandos de DOS. No podía ejecutar el script installService.bat sin ser administrador cuando estaba haciendo mi despliegue.


Tuvimos dificultades con los métodos start.bat enumerados en otras respuestas aquí. Dos problemas principales son la falta de arranque cuando el servidor decide reiniciarse en Patch Tuesday, y el requisito de usar VBS y otra decoración para evitar la necesidad de mantener abierta la ventana de comandos para mantener la JVM activa.

Hemos tenido éxito con el uso del Commons Daemon para ejecutar aplicaciones Play en Windows en producción.

Usamos dist para empaquetar la aplicación para su distribución, luego la instalamos como un servicio de Windows con el Commons Daemon.