Spring Boot Primitive Rest Controller返回Whitelabel错误页面

时间:2018-09-25 14:51:05

标签: java spring spring-boot

我正在尝试构建并运行我的Spring启动项目,该项目在页面上返回“我还活着”。我有基本的主班和一个休息控制器班。我想解决方案很简单,但我找不到与我类似的任何问题。

这是东西。

主类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application{

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

其他控制器

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HealthCheck {

    @GetMapping("/up")
    public String checkHealth(){
        return "I am alive";
    }
}

当我进入localhost:8080 / up时,它返回为

  

Whitelabel错误页面此应用程序没有针对   /错误,因此您将其视为备用。

     

2018年9月25日星期二17:47:53发生意外错误(type = Not   找到,状态为404)。没有可用消息

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</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

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

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.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-mongodb</artifactId>-->
        <!--</dependency>-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-rest</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </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>

4 个答案:

答案 0 :(得分:3)

默认情况下,Spring Boot将从主类(带有@RestController的软件包)及以下版本的软件包开始扫描用@SpringBootApplication注释的类。最简单的解决方法是将您的控制器移至您的主要班级所在的同一包或子包中。

答案 1 :(得分:0)

看起来Spring没有看到您的控制器。您必须使用@ComponentScan

@ComponentScan
@SpringBootApplication
public class FraudWsApplication {

    public static void main(String[] args) {
        SpringApplication.run(FraudWsApplication.class, args);
    }
}

您也可以在我的repo

中找到一个示例

答案 2 :(得分:0)

尝试使用@RequestMapping(“ / up”)而不是使用@GetMapping(“ / up”) 您想在页面上看到消息时,在调用浏览器或在命令行上使用curl时,RequestMapping返回纯文本,

答案 3 :(得分:0)

在您的主要Application中将注释更改为@SpringBootApplication(scanBasePackages = {"com.ykb.frd"})