No se puede publicar contenido web dynamic con Spring Boot y Kotlin

Basado en un tutorial de Spring Boot para contenido web dynamic servido, quería hacer lo mismo en Kotlin. Mi proyecto de Kotlin se basa en este tutorial . No tengo problemas para ejecutar el código de ambos tutoriales.

Según entiendo, solo necesitaba agregar un controller que devolviera una reference a una plantilla.

Aquí HelloController.kt (ubicado bajo src / main / kotlin / foo / controller):

 package foo.controller import org.slf4j.LoggerFactory import org.springframework.stereotype.Controller import org.springframework.web.bind.annotation.RequestMapping @Controller class HelloController { private val log = LoggerFactory.getLogger(HelloController::class.java) @RequestMapping("/") fun hello(): String { log.info("foo") return "index" } } 

Aquí está la simple "plantilla", index.html que quiero acceder (ubicada en src / main / resources / templates / index.html):

 <html> <head> </head> <body> Bar </body> </html> 

Así que, técnicamente, si voy a localhost:8080 debería mostrar index.html que no. En cambio, tengo un error 404. Tengo el logging mostrado para que se llame al método hello . ¿Qué estoy haciendo mal? No vi ningún file de configuration en el tutorial de Spring Boot, así que supongo que Spring está haciendo algo bajo el capó para get el recurso correcto de lo que devuelve una function.

EDITAR:

Ha solicitado mis importaciones de Graddle:

 buildscript { val springBootVersion = "1.4.3.RELEASE" val kotlinVersion = "1.0.6" extra["kotlinVersion"] = kotlinVersion repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion") classpath("org.jetbrains.kotlin:kotlin-noarg:$kotlinVersion") classpath("org.jetbrains.kotlin:kotlin-allopen:$kotlinVersion") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") } } apply { plugin("kotlin") plugin("kotlin-spring") plugin("kotlin-jpa") plugin("org.springframework.boot") } version = "0.0.1-SNAPSHOT" configure<JavaPluginConvention> { setSourceCompatibility(1.8) setTargetCompatibility(1.8) } repositories { mavenCentral() } val kotlinVersion = extra["kotlinVersion"] as String dependencies { compile("org.springframework.boot:spring-boot-starter-web") compile("org.springframework.boot:spring-boot-starter-data-jpa") compile("com.h2database:h2") compile("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion") compile("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion") compile("org.apache.commons:commons-io:1.3.2") compile("org.apache.commons:commons-lang3:3.3.1") testCompile("org.springframework.boot:spring-boot-starter-test") }