I asked a similar question a couple years ago and the answers were educational: What's your deployment method?
Back then I was doing war deployment with Immutant, but with its deprecation I’m starting to move to the systemd setup described by others here.