HttpMediaTypeNotAcceptableException, кажется, использует обработчик для HttpMediaTypeNotSupportedException - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть класс обработчика исключений API, который включает следующие два метода:

    @ExceptionHandler(HttpMediaTypeNotAcceptableException.class)
    public void handleHttpMediaTypeNotAcceptableException(
            HttpMediaTypeNotAcceptableException ex, HttpServletResponse response) throws IOException
    {
        LOG.error("Not acceptable response: " + ex.getMessage(), ex);
        response.setStatus(HttpServletResponse.SC_NOT_ACCEPTABLE);
        writeError(response, RESPONSE_CODES.NOT_ACCEPTABLE);
    }

    @ExceptionHandler(HttpMediaTypeNotSupportedException.class)
    public void handleHttpMediaTypeNotSupportedException(
            HttpMediaTypeNotSupportedException ex, HttpServletResponse response) throws IOException
    {
        LOG.error("Unsupported media type: " + ex.getMessage(), ex);
        response.setStatus(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
        writeError(response, RESPONSE_CODES.UNSUPPORTED_MEDIA);
    }

Но когда запрос выполняется с использованием недопустимого заголовка Accept и действительного заголовка Content-Type, код ответа является 415 (неподдерживаемый тип носителя), когда это должно быть 406 (недопустимый ответ). Как я могу различить guish эти, чтобы соответствующие исключения использовали правильные обработчики?

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