为什么这个Spring Boot应用程序无法找到主页面?

时间:2017-08-07 19:12:57

标签: java maven reactjs spring-boot kotlin

我正在尝试创建一个允许我使用的最小Spring Boot应用程序 ReactJS在前端。

我想要实现的目标

当我运行Spring Boot应用程序时,它应该显示一个带有React的页面 里面的组件。

项目结构

您可以找到源代码here

我得到了什么

当我

  1. 运行mvn clean mvn clean spring-boot:run`和
  2. 导航至http://localhost:8080
  3. 我收到404错误(见下文)。

    Error message

    我该如何解决?

    注意:

    1. 我从教程React.js and Spring Data REST中复制了该方法。
    2. 不要告诉我要摆脱Kotlin,它的Kotlin不太可能 导致问题。
    3. 更新1(07.08.2017 22:17 MSK):

      可以找到mvn clean spring-boot:run的输出here

      更新2(07.08.2017 22:44 MSK):

      RestController课程中将Controller更改为MyApp并移动main 里面的方法没有帮助。

      目前,MyApp类看起来像这样:

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

1 个答案:

答案 0 :(得分:1)

现在我在Kotlin没有经验,但我可以告诉你,你遗漏了以下代码中的内容(除了额外的RestController注释)。

@SpringBootApplication
@RestController
open class MyApp {

}

在Java中,除了使用ServletContextInitializer并使用以下静态方法运行之外,该类还实现了main

SpringApplication.run(MyApp.class, args);

我希望这会有所帮助。

更新

尝试添加模板解析bean,现在它不是唯一的方法,但值得尝试看起来如下:

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

并将以下行添加到您的application.properties:

spring.thymeleaf.check-template-location=true
spring.thymeleaf.suffix=.html
不要忘记将百里香进口到你的POM:

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>