Недавно я начал видеть эту странную проблему с Tomcat. У меня работает небольшое приложение Spring MVC (веб-сервис), которое работает нормально, за исключением запросов PUT. Все запросы POST, GET и c работают нормально при отправке на сервер, но зависают только запросы PUT с ответом 504. Я даже не вижу запрос, зарегистрированный в catalina.out.
Когда я перезагружаю Tomcat, кажется, что это решает проблему, но когда он простаивает некоторое время, он снова начинает работать.
Буду очень признателен за помощь в решении этой проблемы, и, пожалуйста, дайте мне знать, если есть какая-либо другая информация, которую вы хотели бы, чтобы я опубликовал вместе с вопросом.
Замечание: в стандартной конфигурации Tomcat ничего не изменилось. Версия: Apache Tomcat / 8.5.31
Также я попытался найти какое-то решение для SO для этой проблемы, и большинство пользователей указывают на то, что пул соединений с БД является проблемой в Ситуация, как это, но у меня есть POST и GET работает нормально, которые также подключаются к БД. Я просто смущен, почему только запросы PUT терпят неудачу.
Вот некоторые вопросы, которые я прошел:
Вопрос 1
Вопрос 2
Вопрос 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);
}
}