405 Метод не разрешен с API первого отдыха в устаревшем приложении - PullRequest
0 голосов
/ 19 июня 2020

У меня есть устаревшее веб-приложение (spring 4.2. *), Которое использует шаблон проектирования Front Controller (с использованием диспетчерского сервлета) для разрешения представлений. Я хотел добавить свой первый Rest API. Теперь я получаю разрешенный метод 405

вот мой код контроллера отдыха

    @RestController
    public class ProductCatalogResource {

    @RequestMapping(method = RequestMethod.POST, value="/api", produces = {
            MediaType.APPLICATION_JSON_VALUE }, consumes = { MediaType.APPLICATION_JSON_VALUE })
    public String create(ProductLocation productLocation) {

        return "succcess";
    }

    @RequestMapping("/")
    public String welcome() {
        return "Welcome to RestTemplate Example.";
    }
}

, когда я отправляю вызов http://localhost: 8090 / api Я получаю

<html>

<head>
    <title>Error</title>
</head>

<body>HTTP method POST is not supported by this URL</body>

</html>

из журналов отладки, которые я нашел ниже. Я чувствую, что вторая часть журнала говорит, что сопоставления URL-адресов пусты. Может быть, устаревшая конфигурация сервлета диспетчера отменяет регистрацию Rest Resource? Любая помощь в решении проблемы?

2020.06.19 04:30:18.656 ServerService Thread Pool -- 68 DEBUG 2 request handler methods found on class com.org.webservice.controller.ProductCatalogResource: {public java.lang.String com.org.webservice.controller.ProductCatalogResource.create(com.org.webservice.controller.ProductLocation)={[/api],methods=[POST],consumes=[application/json],produces=[application/json]}, public java.lang.String com.org.webservice.controller.ProductCatalogResource.welcome()={[/]}}
2020.06.19 04:30:18.658 ServerService Thread Pool -- 68  INFO Mapped "{[/api],methods=[POST],consumes=[application/json],produces=[application/json]}" onto public java.lang.String com.org.webservice.controller.ProductCatalogResource.create(com.org.webservice.controller.ProductLocation)
2020.06.19 04:30:18.659 ServerService Thread Pool -- 68  INFO Mapped "{[/]}" onto public java.lang.String com.org.webservice.controller.ProductCatalogResource.welcome()
.
.
.
2020.06.19 04:30:18.936 ServerService Thread Pool -- 68 DEBUG Rejected bean name 'productCatalogResource': no URL paths identified

enter image description here

Обновление: Сопоставления запросов отменяются сопоставлениями URL-адресов

1 Ответ

0 голосов
/ 19 июня 2020

сначала вам нужно посмотреть, что вы делаете запрос POST в почтальоне, потому что по умолчанию он установлен на GET. Я пробовал ваш код, и он работает нормально.

img1

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