Tomcat не может обслуживать PUT-запросы, но отлично работает при отправке GET, POST et c. запросы к серверу - PullRequest
0 голосов
/ 21 февраля 2020

Недавно я начал видеть эту странную проблему с 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);
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...