Tomcat无法处理PUT请求,但在向服务器发送GET,POST等请求时工作正常

时间:2020-02-21 07:04:20

标签: tomcat

最近,我开始看到Tomcat出现这个奇怪的问题。我有一个小的Spring MVC应用程序(网络服务)在其上运行,除了PUT请求外,它都能正常工作。提交到服务器时,所有POST,GET等请求都可以正常工作,但是只有PUT请求挂起且响应为504。我什至没有看到该请求记录在catalina.out中。

当我重新启动Tomcat时,似乎可以解决此问题,但是当它闲置了一段时间后,它又开始起作用。

在此问题上,我将非常感谢您的帮助,如果您希望我与问题一起发布其他信息,请告诉我。

仅需注意,Tomcat的默认配置没有任何变化。版本为 Apache Tomcat / 8.5.31

我也尝试针对此问题找到一些SO解决方案,并且大多数用户都认为DB连接池是这种情况下的问题,但我的POST和GET工作正常,它们也可以连接到DB。我只是感到困惑,为什么只有PUT请求失败。

以下是我遇到的一些问题:

Question 1

Question 2

Question 3

这是我的控制器(已删除其他请求映射):

@RestController
public class EmployeeController {

    private final EmployeeService employeeService;

    @Autowired
    public EmployeeController(EmployeeService employeeService) {
        this.employeeService = employeeService;
    }

    @RequestMapping(value = "/employee/{employeeID}/{status}", method = RequestMethod.PUT,
            consumes = MediaType.APPLICATION_JSON_VALUE,
            produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public ResponseEntity<Void> updateStatus(@PathVariable Integer employeeID, @PathVariable String status) {
        employeeService.updateStatus(employeeID, status);
        return new ResponseEntity<>(HttpStatus.OK);
    }

}

0 个答案:

没有答案