Spring type = Not Found,status = 404无可用消息

时间:2018-01-17 16:25:51

标签: java spring maven

到目前为止,我唯一做的就是创建一个名为" controller"使用" HomeController.java"在其中的文件,使用以下代码:

    package com.demo.spring.controller;

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;

    @Controller
    public class HomeController {

        @RequestMapping(value = "/", method = RequestMethod.GET)
        @ResponseBody
        public String index(){

            return "Hello World.";
        }
    }

的pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.demo.spring</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>demo-spring</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

我的文件结构: enter image description here

完整错误:

  

Whitelabel错误页面此应用程序没有明确的映射   /错误,所以你看到这是一个后备。

     

Wed Jan 17 15:17:56 GMT 2018出现意外错误(type = Not   找到了,状态= 404)。没有可用的消息

3 个答案:

答案 0 :(得分:2)

如果您要返回这样的原始字符串,则应在其他注释下方添加@ResponseBody注释。

或者,您可以将其关闭并像这样做。这表示您正在返回一个带有字符串的有效HTTP响应实体(200代码),它将自动转换为JSON。

@RequestMapping(value = "whatever_path", method = RequestMethod.GET)
public ResponseEntity<String> getResult() {
    return new ResponseEntity<>("Hello World", HttpStatus.OK);
}

答案 1 :(得分:0)

我丢失了一个名为DemoSpringApplication.java的文件。它应该在com.demo.spring包中。

此文件应该是默认文件。我不确定我是不是意外删除了它,或者它是否从未出现过。我在IntelliJ中创建了一个新项目,它在新项目中自动显示。

与上述相比,请看这张图片: enter image description here

答案 2 :(得分:0)

当'SpringApplication'类和控制器类位于不同的程序包中时,我收到此类错误。

添加

@SpringBootApplication(scanBasePackages = "a.b.c")

解决了我的问题