405 MethodNotAllowed возвращается вместо того, что указано в ResponseStatusException () - PullRequest
0 голосов
/ 27 января 2020

У меня очень простая конечная точка

@PostMapping("/exception")
public String exception() {
    throw new ResponseStatusException(HttpStatus.BAD_REQUEST);
}

на 2 разных машинах. На первой машине этот код находится в очень простом приложении с весенней загрузкой и работает так, как и должно работать - при вызове возвращает 400 BAD_REQUEST. На второй машине у меня есть настоящий весенний загрузочный проект, с большим количеством вещей. Там вместо возврата BAD_REQUEST я получаю 405 MethodNotAllowed. Я даже не знаю, что может быть причиной такого поведения. Вы хоть представляете, в чем дело?

Я прилагаю скриншот запроса почтальона, который я использую.

Скриншот почтальона

весь контроллер:

package com.xxx.service.max.web.controller;

import com.xxx.service.max.model.context.UserContext;
import com.xxx.service.max.services.cas.CustomerAccountService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.server.ResponseStatusException;

import static com.xxx.service.max.constant.Constants.MY_ACCOUNT_X_REST;

@RestController
@RequestMapping(MY_ACCOUNT_X_REST)
public class ChangeLocaleController {

    private static final Logger LOG = LoggerFactory.getLogger(ChangeLocaleController.class);

    private UserContext userContext;

    private CustomerAccountService customerAccountService;

    @PostMapping("/exception")
    public String exception() {
        throw new ResponseStatusException(HttpStatus.BAD_REQUEST);
    }

    @Autowired
    public void setUserContext(UserContext userContext) {
        this.userContext = userContext;
    }

    @Autowired
    public void setCustomerAccountService(CustomerAccountService customerAccountService) {
        this.customerAccountService = customerAccountService;
    }
}

1 Ответ

2 голосов
/ 27 января 2020

Убедитесь, что вы отправляете запрос POST.

Ошибка 405 Method Not Allowed возникает, когда веб-сервер настроен так, что не позволяет выполнить определенное действие c для определенного URL-адреса. Это код состояния ответа HTTP, который указывает, что метод запроса известен серверу, но не поддерживается целевым ресурсом.

Источник

Если вы просто введите URL-адрес в браузере, который является запросом GET, и вы получите 405.

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