我在Spring Boot的API调用中遇到404错误

时间:2019-08-31 21:22:26

标签: java spring spring-boot http-status-code-404

我正在研究Spring Boot应用程序。按下我配置的URL路径时,出现 404错误。我要去哪里错了?

HomeController.java

val=3234
val=123
val=678

HomeApplication.java

package com.example.homes;

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

@RestController("/add")
public class HomeController {

    @GetMapping("/hello")
    public String add() {
        return "Hello";
    }

}

3 个答案:

答案 0 :(得分:1)

您缺少/add的RequestMapping。您保留为@RestController属性。它应该是@RequestMapping("/add")。在您当前的代码中,hello被映射到root。

尝试localhost:8080/hello,它将起作用。

如果需要localhost:8080/add/hello

然后应如下所示:


@RestController
@RequestMapping("/add")
public class HomeController {

    @GetMapping(value = "/hello") 
    public String add() {
        return "Hello";
    }
}

答案 1 :(得分:1)

@RestController @Controller的专用版本,它会自动添加@Controller@ResponseBody注释。因此我们不必在我们的映射方法中添加@ResponseBody

@RequestMapping 将HTTP请求映射到MVC和REST控制器的处理程序方法。

这里可能是@RestController("/add")的嫌疑人,应该是@RequestMapping("/add")

@Class级别的RequestMapping

@RestController
@RequestMapping("/add")
public class HomeController {

    //localhost:8080/add/hello (No Context Path in application.properties)
    @GetMapping("/hello")
    public String add() {
        return "Hello";
    }

}

@方法级别的@RequestMapping

@RestController
public class HomeController {

    //localhost:8080/hello (No Context Path in application.properties)
    @GetMapping("/hello")
    public String add() {
        return "Hello";
    }

}

如果您在application.properties中没有定义任何上下文路径,请致电
localhost:8080/add/hello将提供所需的输出

如果您的上下文路径为 app ,则调用localhost:8080/app/add/hello

答案 2 :(得分:1)

执行此操作,而不是执行@RestController("/add")

@RestController
@RequestMapping("/add")

那么您应该可以致电localhost:8080/<ApplicationContext>/add/hello