How do I run a Play Framework 2.0 application as a Windows service?
playframework, playframework-2.0, windows-server-2008, windows-server-2008-r2
Solution
This worked for me on Windows 7:
- Create folder C:\my_app
Go to your Play! app folder in command line and type
`play dist`
- Copy generated "something-SNAPSHOT" folder to C:\my_app
- Download YAJSW and extract to C:\my_app
In C:\my_app\something-SNAPSHOT\ make a new file start.bat and fill it with command like this:
`java -cp "C:\my_app\something-SNAPSHOT\lib\*" play.core.server.NettyServer`
Save it and launch start.bat. Your play app must start and work as usual. Take a look at server's PID. You will use it in the next step.
Now using command prompt go to C:\my_app\yajsw\bat and type
`genConfig.bat < PID from previous step >`
You generated C:\my_app\yajsw\conf\wrapper.conf. Edit this file and change these params like so:
`wrapper.ntservice.name=My App Name wrapper.ntservice.displayname=My App Name` Save file.
Terminate the start.bat script you started in 6. then, in C:\my_app\yajsw\bat launch
`runConsole.bat` If app starts, do a `Ctrl c` (and answer y) to terminate the batch file and proceed to next step.
To install service launch (Run as administrator)
`installService.bat`
To start service launch
`startService.bat`
Now you can see your "My App Name" service in Windows services. To stop service you can use `stopService.bat`. To uninstall it `uninstallService.bat`.
Problem
I have a Play Framework 2.0 application that I want to deploy (production) on Windows Server 2008 R2. How do I get it to run as a service?