The Ninja framework is a fairly lightweight stack modelled loosely on the Play! framework. It’s dead easy to learn, open-source, scaleable and supports just about every other feature you’d expect to ensure full buzzword compliance.
Though again, the need to support nullable types in the framework made a few bits of the code a little cumbersome.
Anyway, if you’re on the lookout for a web framework that’s pretty much production-ready and is a good fit for Kotlin, then the Ninja Web framework is worth a look. With any luck, the folk at Jetbrains could work with the Ninja folk to make the framework a little more Kotlin-friendly.
I've been experimenting with Kotlin/Ninja as well. Injecting services into controllers was a bit cumbersome at first when I tried field level injection. Initially, I believe I was doing something like this (which is similar to your InjectionExampleController):
Inject var greetingService : GreetingService? = null
This of course gives you a nullable GreetingService which is rather annoying as you have to either add nullchecks everywhere or use the !! operator. I find using constructor injection is much better:
public class HelloController [Inject] ( val greetingService : GreetingService) {
… since you get a non-null reference that doesn’t propagate throughout your code.