POST 使用上下文路径调用在 spring 引导中不起作用 2.x
POST call using context-path not working in spring boot 2.x
我正在将我的 spring 启动应用程序从 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/"
}
下面是我的代码
application.properties:
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;
}
spring 引导版本:
<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/
相同的结果的情况
您没有终点 /hello
但 /hello/
。 /hello
是 main/root 路径,您的端点是为 /hello/
指定的,因为:
@RequestMapping(value = "/")
我在 application.yml
中添加 属性 下面后,它对我有用
server:
tomcat:
redirect-context-root: false
我正在将我的 spring 启动应用程序从 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/"
}
下面是我的代码
application.properties:
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;
}
spring 引导版本:
<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/
您没有终点 /hello
但 /hello/
。 /hello
是 main/root 路径,您的端点是为 /hello/
指定的,因为:
@RequestMapping(value = "/")
我在 application.yml
中添加 属性 下面后,它对我有用server:
tomcat:
redirect-context-root: false