0

我正在将我的 Spring Boot 应用程序从 1.5.x 迁移到 2.x 在对上下文路径进行 POST 调用时出现 405 错误,而没有尾随 /

{
    "timestamp": "2020-11-04T12:07:19.065+0000",
    "status": 405,
    "error": "Method Not Allowed",
    "message": "Request method 'GET' not supported",
    "path": "/hello/"
}

下面是我的代码

应用程序属性:

spring:
  application:
    name: hello-world-service
server:
  servlet:
    context-path: /hello
  port: 8082

HelloWorldController.java

@RestController
@RequestMapping(value = "/")
public class HelloWorldController {
    
    @PostMapping
    public ResponseEntity<String> helloWorld(@RequestBody HelloDto helloDto){
        return ResponseEntity.ok(helloDto.getName());
    }
}

HelloDto.java

@Data
public class HelloDto {
    private String name;
}

春季启动版本:

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

当我在 http://localhost:8082/test 上进行 POST 调用时,我得到 405 状态下面是截图

在此处输入图像描述

但是当我在 http://localhost:8082/test/ 上进行 POST 调用时,它工作正常。下面是快照

在此处输入图像描述

有什么方法可以处理我们拨打电话的情况与我们拨打电话时的localhost:8082/test结果相同localhost:8082/test/

4

2 回答 2

0

您没有端点/hello,但是/hello/. /hello是主/根路径,因此指定了您的端点/hello/

@RequestMapping(value = "/")
于 2020-11-04T12:33:33.093 回答
0

在 application.yml 添加以下属性后,它对我有用

server:
  tomcat:
    redirect-context-root: false
于 2020-11-04T19:39:02.020 回答