У меня есть разработанное веб-приложение Spring Boot, которое в настоящее время находится в производстве.
С момента запуска я заметил в журналах сообщения типа «Метод запроса« GET »не поддерживается», «Метод запроса« POST »не поддерживается»
Сначала я думал, что они неактуальны, поскольку мы никогдастолкнулся с этим во время разработки или тестирования.
Но после некоторого копания я понял, что это иногда случается, когда клиент пробует известные маршруты GET / POST Rest, которые работают без проблем в 95% случаев.
Я пытаюсь найти основную причину, но до сих пор я не нашел решения.
Я создал HandlerInterceptor
и в методе afterCompletion
я регистрирую URL, заголовки и полезную нагрузку для запросов, которыевозвращаются клиенту с 405 (метод не разрешен) Http Status.Но, похоже, с запросом все в порядке.Отсутствие косой черты в конце URL-адреса, фиктивные / отсутствующие параметры внутри полезной нагрузки, тип метода соответствует ожидаемому.
Это пример отображения маршрута (все они выполняются одинаково бездругие дополнения)
@RequestMapping(value = "/my/route", method = RequestMethod.POST)
public ResponseEntity<?> requestWithdrawal(@Valid @RequestBody InputViewModel model, HttpServletRequest request) {
...
}
Я не знаю, какой подход я должен использовать для дальнейшего расследования.
Более подробная информация, которая, на мой взгляд, может иметь отношение к делу:
- Mapping is properly done - I didn't manage to reproduce this until now
- I don't use any load balancer
- I don't have csrf - it is disabled
- Spring Boot version is 1.5.4
- Client is AngularJS so all the calls are send using $http() built-in library.
Если у вас есть какие-либо советы, я буду очень признателен.
Заранее спасибо!