¿Cómo ejecuto una aplicación Play Framework 2.0 como un servicio de Windows?
Frecuentes
Visto 14,684 veces
18
Tengo una aplicación Play Framework 2.0 que quiero implementar (producción) en Windows Server 2008 R2. ¿Cómo hago para que se ejecute como un servicio?
5 Respuestas
44
Esto funcionó para mí en Windows 7:
- Crear carpeta C:\my_app
Ve a tu Play! carpeta de la aplicación en la línea de comando y escriba
play dist
- Copie la carpeta "algo-SNAPSHOT" generada en C:\my_app
- Descargar YAJSW y extraer a C:\my_app
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
Guárdelo y ejecute start.bat. Su aplicación de juego debe iniciarse y funcionar como de costumbre. Eche un vistazo al PID del servidor. Lo utilizará en el siguiente paso.
Ahora, usando el símbolo del sistema, vaya a C:\my_app\yajsw\bat y escriba
genConfig.bat < PID from previous step >
Generaste C:\my_app\yajsw\conf\wrapper.conf. Edite este archivo y cambie estos parámetros así:
wrapper.ntservice.name=My App Name
wrapper.ntservice.displayname=My App Name
Guardar el archivo.Terminar el start.bat script que comenzaste en 6. luego, en C:\my_app\yajsw\bat launch
runConsole.bat
Si la aplicación se inicia, haga unCtrl c
(y la respuesta y) para finalizar el archivo por lotes y continuar con el siguiente paso.Para instalar el lanzamiento del servicio (Ejecutar como administrador)
installService.bat
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 utilizar stopService.bat
. Para desinstalarlo uninstallService.bat
.
Respondido el 30 de diciembre de 13 a las 22:12
3
Deberías echar un vistazo a esta pregunta: Ejecute la aplicación Java como servicio
Tendrás que usar el play dist
comando y luego adaptar el start
script para ejecutar en Windows.
contestado el 23 de mayo de 17 a las 13:05
1
Si obtiene un error en paso 5. que se parece a 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!
Luego ejecute el comando como este en su lugar:
java -cp "C:\my_app\something-SNAPSHOT\lib\*" -DapplyEvolutions.default=true play.core.server.NettyServer
Dos elementos adicionales en el proceso que Mikhail describió me hicieron tropezar:
Primero, antes paso 9., asegúrese de terminar el start.bat guión en el que comenzaste paso 6.. No hacer esto causó el dolor que publiqué aquí:
Por último, asegúrese de Ejecutar como administrador cuando abre la ventana de comandos de DOS. no pude correr el installService.bat script sin ser administrador cuando estaba haciendo mi implementación.
contestado el 23 de mayo de 17 a las 13:05
0
Tuvimos dificultad con el start.bat
métodos enumerados en otras respuestas aquí. Dos problemas importantes son la falta de arranque cuando el servidor decide reiniciarse el martes de parches y el requisito de usar VBS y otra decoración para evitar tener que mantener abierta la ventana de comandos para mantener viva la JVM.
Hemos tenido éxito con el uso de la Demonio común para ejecutar aplicaciones Play en Windows en producción.
Utilizamos dist
para empaquetar la aplicación para su distribución, luego instálela como un servicio de Windows utilizando Commons Daemon.
Respondido 28 Feb 14, 15:02
0
Fore nuevas versiones de juego que puedes usar sbt-native-packager
que preparan el instalador y el servicio casi automáticamente
http://www.scala-sbt.org/sbt-native-packager/formats/windows.html
contestado el 18 de mayo de 16 a las 18:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas playframework windows-server-2008 playframework-2.0 windows-server-2008-r2 or haz tu propia pregunta.
Información clara, me gusta, además sugiero cambiar el nombre
RUNNING_PID
archivo a otra cosa para evitar problemas de inicio después de un reinicio repentino del servidor, (aquí hay más información en otra respuesta) - bisior