¿Por qué esta aplicación Spring Boot no puede encontrar la página principal?

Intento crear una aplicación Spring Boot mínima que me permita usar ReactJS en la interfaz.

Lo que quiero lograr

Cuando ejecuto la aplicación Spring Boot, debe mostrar una página con un componente React dentro de ella.

Estructura del proyecto

Puedes encontrar el código fuente aquí .

  • Clase de aplicación Spring Boot
  • Clase de controller

  • Página principal de HTML

  • Código de reacción

Lo que consigo

Cuando yo

  1. ejecutar mvn clean mvn clean spring-boot: ejecutar` y
  2. navegue a http://localhost:8080 ,

Me sale el error 404 (ver a continuación).

Mensaje de error

¿Cómo puedo arreglarlo?

Notas:

  1. Copié el enfoque del tutorial React.js y Spring Data REST .
  2. No me digas que me deshaga de Kotlin, es muy poco probable que sea Kotlin el que causa el problema.

Actualización 1 (07.08.2017 22:17 MSK):

La salida de mvn clean spring-boot:run se puede encontrar aquí .

Actualización 2 (07.08.2017 22:44 MSK):

Cambiar RestController a Controller en la class MyApp y mover el método main dentro de él no ayudó.

Actualmente, la class MyApp ve así:

 @SpringBootApplication @Controller open class MyApp { fun main(args: Array<String>) { SpringApplication.run(MyApp::class.java,*args) } } 

ahora no tengo experiencia en Kotlin pero puedo decirte que te falta algo en el siguiente código (además de tener una anotación RestController extra).

 @SpringBootApplication @RestController open class MyApp { } 

En Java, esta class implementa ServletContextInitializer además de tener el main dentro de él con el siguiente método estático ejecutado:

 SpringApplication.run(MyApp.class, args); 

Espero que esto ayude.

Actualizar

También intente agregar una plantilla para resolver el bean, ahora no es la única forma de hacerlo, pero vale la pena intentarlo de la siguiente manera:

 @Bean public ClassLoaderTemplateResolver yourTemplateResolver() { ClassLoaderTemplateResolver yourTemplateResolver = new ClassLoaderTemplateResolver(); yourTemplateResolver.setPrefix("templates/"); return yourTemplateResolver; } 

y agregue las siguientes líneas a su application.properties:

 spring.thymeleaf.check-template-location=true spring.thymeleaf.suffix=.html 

no olvides importar thymeleaf a tu POM:

 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 
  • Kotlin: ejecuta una testing de integración, el error `diversión principal ya está definido`
  • Spring Boot: no puede include recurso estático
  • Custom Jersey ExceptionMapper en Spring Boot con kotlin
  • Encabezados HTTP no devueltos en EC2
  • Usando una constante de Java en un parámetro de anotación de Kotlin
  • BadCnetworkingentialsException: no se pudo get el token de acceso con la security de arranque de resorte Oauth2 en GAE
  • Enfoque correcto para la class de Kotlin inyectada de constructor inmutable
  • Kotlin + Spring Boot solicita sorting
  • El file spring-configuration-metadata.json no se genera en IntelliJ Idea for Kotlin @ConfigurationProperties class
  • Spring Boot @ Autoajustado con Kotlin en @Service siempre es nulo
  • Spring Boot Application: File System Watcher para muchas routes