2017-08-07 112 views
0

我试图创建一个最小的Spring Boot应用程序,它允许我在前端使用 ReactJS。为什么这个Spring Boot应用程序找不到主页?

我想实现

当我运行春季启动应用程序,它应该有它里面一个阵营 组件显示一个页面是什么。该项目

结构,你可以找到源代码here

我得到什么

当我

  1. 运行mvn clean MVN清洁春天启动:run`和
  2. 导航到http://localhost:8080

我得到的404错误(见下文)。

Error message

我怎样才能解决这个问题?

注:

  1. 我复制本教程React.js and Spring Data REST的办法。
  2. 不要告诉我摆脱Kotlin,它是不太可能是Kotlin 造成的问题。

更新1(2017年7月8日22时17分MSK):

mvn clean spring-boot:run输出可以发现here

更新2(2017年8月7日22:44 MSK):

MyApp类更改RestControllerController和移动main 方法里面并没有帮助。

目前,MyApp类看起来是这样的:

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

你在控制台上看到什么信息(你在哪里输入'mvn'命令)?你看到“服务器启动”等? – Bohemian

+0

广告*你看到“服务器启动”等?*:是的。我在更新1中包含了'mvn clean spring-boot:run'的输出。 –

+1

请不要链接您的错误和输出。将它们复制到此处并正确格式化,以便链接不会在以后更改或过期。 – Todd

回答

1

现在我没有经验将在科特林,但我可以告诉你,你缺少在下面的代码的东西(除了有一个额外的RestController注释)。

@SpringBootApplication 
@RestController 
open class MyApp { 

} 

在Java这个类实现除了ServletContextInitializer具有在其中的main有以下静态方法运行:

SpringApplication.run(MyApp.class, args); 

我希望这有助于。

更新

尝试还添加模板解决豆,现在是不是要做到这一点的唯一方法,但是实在值得一试,将如下所示:

@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 

不要忘记导入thymeleaf到您的POM:

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

他期待着一个页面。所以'@ RestController'在这个用例中不是正确的注释。应该用'@ Controller'代替。 –

+0

实际上在他使用'controller'注释的控制器中,请看这里:https://github.com/dpisarenko/minimal-react-boot-project/blob/master/src/main/kotlin/com/mycompany/HomeController.kt但在应用程序初始化器和RestController .... – MrMisery

+0

感谢您的答案。我试过了,但没有帮助(请参阅更新2)。 –

相关问题