无法启动简单的Spring Boot项目

时间:2017-02-09 00:54:40

标签: java spring-boot

使用NetBeans 8.1。

我有这个简单的java Spring Boot项目,没有任何bean或持久性。 同一个包中的两个java类。

@SpringBootApplication
public class SpringSimpleTestApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringSimpleTestApplication.class, args);
    }
}
@Controller
public class WebController {
    @RequestMapping("/")
    public String index(){
        return "index";
    }
}

" index.html" src / main / resources-> templates

下的文件
<!DOCTYPE html>
<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <h1>Test</h1>
    </body>
</html>

当我运行它时我没有错误但是当我去 http://localhost:8080/ 时,我有 Whitelabel错误页面

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.
Thu Feb 09 01:53:26 CET 2017
There was an unexpected error (type=Not Found, status=404).
No message available

3 个答案:

答案 0 :(得分:4)

首先,index.html是静态资源,但它属于src/main/resources/static,而不是src/main/resources/templates

其次,您不需要静态资源的请求映射。他们只是工作。

所以,移动index.html,删除WebController,它就可以了。

答案 1 :(得分:0)

您将html放在错误的目录中。这就是你得到这个错误的原因。

在Spring Boot项目中,默认目录存储html文件为src / main / webapp。但是,在这里很难与你展示。我在教程Spring Boot Maven Example Hello World with JSP

中找到了这个

如果使用Thymeleaf创建Spring Boot项目,则默认目录正好是src / main / resources / templates。您可以参考帖子Spring Boot Thymeleaf Hello World Example

我只是用两种情况构建项目,它正常工作。希望这个帮助

答案 2 :(得分:0)

src / main / resources / templates 文件夹用于服务器端模板(例如,使用Thymeleaf,Mustache,...)。如果您收到404错误,则可能是您未在依赖项中提供任何template engine,例如:

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

另一个可能的原因是您的控制器没有被接收,因此请确保WebController位于SpringSimpleTestApplication的(子)包中(这是Spring引导用于扫描的默认包)组件)。

但是,如果您不需要服务器端模板并且只想提供静态 index.html 文件,则应将其放在 src / main / resources / public < / strong>或 src / main / resources / static 。在这种情况下,您也不需要控制器,因此您可以删除WebController之类的LIMIT