Контроллер Spring не может обрабатывать несколько типов носителейJAVA

Программисты JAVA общаются здесь
Anonymous
Контроллер Spring не может обрабатывать несколько типов носителей

Сообщение Anonymous »

У меня есть простой контроллер отдыха:

Код: Выделить всё

@RequestMapping(method = RequestMethod.POST, value = "/consumeProto",
consumes = {APPLICATION_PROTOBUF_VALUE, APPLICATION_JSON_VALUE, APPLICATION_JSON_UTF8_VALUE},
produces = {APPLICATION_PROTOBUF_VALUE, APPLICATION_JSON_VALUE})
@ResponseBody
public ResponseDto consumeProto(@RequestBody RequestDto requestDto) {
System.out.println("Consumer application has received the message");
System.out.println(requestDto);

RequestDto res = RequestDto.newBuilder()
.setStatus(CREATED)
.build();

return res;
}
У меня есть еще одно приложение для загрузки спринта, которое может отправлять сообщение protobuf в эту конечную точку. Но когда я пытаюсь отправить эквивалент JSON в эту конечную точку, я получаю [org.springframework.web.HttpMediaTypeNotSupportedException: Content-Type 'application/json;charset=UTF-8' не поддерживается]. У меня сложилось впечатление, что контроллер может обрабатывать несколько типов мультимедиа, поскольку значение Consumer представляет собой массив (т. е. {APPLICATION_PROTOBUF_VALUE, APPLICATION_JSON_VALUE, APPLICATION_JSON_UTF8_VALUE.
Я знаю, что может быть немного странно разрешать одному контроллеру принимать несколько форм по запросу, но, конечно, это разрешено, учитывая, что есть возможность внедрить массив типов мультимедиа?


Подробнее здесь: https://stackoverflow.com/questions/783 ... edia-types

Вернуться в «JAVA»