PUT-запрос не поддерживается | Весенняя загрузка Java

Я добавил метод put в свой контроллер. Но когда я обращаюсь к нему, я получаю ошибку 405 (метод не разрешен). В консоли печатается ошибка Метод запроса «PUT» не поддерживается. У меня есть другой контроллер, где работает пут.

Я хотел бы некоторую помощь.

Запросконтроллер

@RestController
@RequestMapping("/mainsite")
public class MainsiteController {
    private MainsiteService mainsiteService;

    @Autowired
    public MainsiteController(MainsiteService mainsiteService) {
        this.mainsiteService = mainsiteService;
    }

    @PutMapping("{id}")
    public Mainsite updateMainsite(@PathVariable("id") Long id, @RequestBody Mainsite mainsite) {
        return mainsiteService.updateMainsite(id, mainsite);
    }
}

Журнал

[2m2022-11-20 17:47:49.587[0;39m [32mDEBUG[0;39m [35m10420[0;39m [2m---[0;39m [2m[nio-8080-exec-1][0;39m [36mo.s.web.servlet.DispatcherServlet       [0;39m [2m:[0;39m PUT "/api/v1/mainsite?id=1", parameters = {masked}
[2m2022-11-20 17:47:49.592[0;39m [33m WARN[0;39m [35m10420[0;39m [2m---[0;39m [2m[nio-8080-exec-1][0;39m [36m.w.s.m.s.DefaultHandlerExceptionResolver[0;39m [2m:[0;39m Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' not supported]
[2m2022-11-20 17:47:49.592[0;39m [32mDEBUG[0;39m [35m10420[0;39m [2m---[0;39m [2m[nio-8080-exec-1][0;39m [36mo.s.web.servlet.DispatcherServlet       [0;39m [2m:[0;39m Completed 405 METHOD_NOT_ALLOWED
[2m2022-11-20 17:47:49.595[0;39m [32mDEBUG[0;39m [35m10420[0;39m [2m---[0;39m [2m[nio-8080-exec-1][0;39m [36mo.s.web.servlet.DispatcherServlet       [0;39m [2m:[0;39m "ERROR" dispatch for PUT "/api/v1/error?id=1", parameters = {masked}
[2m2022-11-20 17:47:49.596[0;39m [32mDEBUG[0;39m [35m10420[0;39m [2m---[0;39m [2m[nio-8080-exec-1][0;39m [36ms.w.s.m.m.a.RequestMappingHandlerMapping[0;39m [2m:[0;39m Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
[2m2022-11-20 17:47:49.613[0;39m [32mDEBUG[0;39m [35m10420[0;39m [2m---[0;39m [2m[nio-8080-exec-1][0;39m [36mo.s.w.s.m.m.a.HttpEntityMethodProcessor [0;39m [2m:[0;39m Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/json, application/*+json]
[2m2022-11-20 17:47:49.616[0;39m [32mDEBUG[0;39m [35m10420[0;39m [2m---[0;39m [2m[nio-8080-exec-1][0;39m [36mo.s.w.s.m.m.a.HttpEntityMethodProcessor [0;39m [2m:[0;39m Writing [{timestamp=Sun Nov 20 17:47:49 CET 2022, status=405, error=Method Not Allowed, path=/api/v1/mainsite (truncated)...]
[2m2022-11-20 17:47:49.640[0;39m [32mDEBUG[0;39m [35m10420[0;39m [2m---[0;39m [2m[nio-8080-exec-1][0;39m [36mo.s.web.servlet.DispatcherServlet       [0;39m [2m:[0;39m Exiting from "ERROR" dispatch, status 405

Приложение.свойства

server.servlet.context-path=/api/v1
LeetCode запись решения 2536. Увеличение подматриц на единицу
LeetCode запись решения 2536. Увеличение подматриц на единицу
Увеличение подматриц на единицу - LeetCode
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Как включить TLS в gRPC-клиенте и сервере : 2
Как включить TLS в gRPC-клиенте и сервере : 2
Здравствуйте! 🙏🏻 Надеюсь, у вас все хорошо и добро пожаловать в мой блог.
Сортировка hashmap по значениям
Сортировка hashmap по значениям
На Leetcode я решал задачу с хэшмапой и подумал, что мне нужно отсортировать хэшмапу по значениям.
0
0
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
[2m2022-11-20 17:47:49.587[0;39m [32mDEBUG[0;39m [35m10420[0;39m [2m---[0;39m [2m[nio-8080-exec-1][0;39m [36mo.s.web.servlet.DispatcherServlet       [0;39m [2m:[0;39m PUT "/api/v1/mainsite?id=1", parameters = {masked}

Вы отправляете параметр запроса, как показано в приведенном выше журнале «/api/v1/mainsite?id=1».

Но вы используете PathVariable в своем коде:

   public Mainsite updateMainsite(@PathVariable("id") Long id, @RequestBody Mainsite mainsite) {

Вы должны отправить URL как "/api/v1/mainsite/1"

Другие вопросы по теме

Похожие вопросы

Как добавить обработку событий для объекта Button, созданного в For Loop (JavaFX/Scenebuilder)
Как получить минимальное значение LocalDateTime из массива в Java
Как я могу периодически приостанавливать и возобновлять обработку потока (каждые 5 минут) с помощью Kafka Streams и Spring Kafka Streams?
Невозможно запустить какие-либо тесты Junit4 — InvalidTestClassError: недопустимый тестовый класс
Как предотвратить длительное переполнение?
Метод Java PrintStream .println() не выводится в файл?
Java-Stream - объединить результаты двух методов, создающих значение и список, вызываемый условно внутри одной и той же потоковой операции в Java 8.
Не удается получить доступ к «/docker-entrypoint-initdb.d/»: операция не разрешена Spring Boot + My SQL + Docker
VLCJ-4: воспроизведение звука останавливается слишком рано (событие "завершено" запускается до окончания медиа)
Fabric8: Mock Kubernetes Server на самом деле не создает ресурс без набора «ожидание»