Что происходит, так это то, что вы получаете результат применения DefaultConverter к возвращенному значению, а не к JacksonConverter. DefaultConverter преобразует объекты Serializable в ObjectRepresentation, который является двоичным представлением (сериализованной формой объекта). В случае отсутствия определенного типа медиаданных логика конвертера видит, что Serializable является в равной степени конвертируемым в ObjectRepresentation или JacksonRepresentation, и из-за того, как упорядочиваются преобразователи, он выбирает первый.
Существует несколько способов борьбы с этим. Проще всего указать нужный тип носителя явно (MediaType.APPLICATION_JSON) в запросе.
Более надежное решение - заменить JacksonConverter на собственную версию, которая имеет нулевой вариант выше текущего значения 0,5. Вы все равно захотите сделать это, если хотите переопределить текущее поведение JacksonRepresentation создания нового ObjectMapper для каждого преобразования или если вы хотите использовать Jackson 2.0. Найдите список реселлеров-обсуждений для моих сообщений о том, как это сделать. (tpeierls)
Вполне возможно, что это поведение было исправлено в более поздних выпусках, и я знаю, что над этими проблемами идет работа, поэтому выполните поиск трекера задач для JacksonConverter, прежде чем перейти к любому курсу действий ,
Спасибо за подробное объяснение. Я попробую ваши предложения и посмотрю, что получится лучше всего. – ravyoli