Я пробовал многие из решений на этом форуме для решения этой проблемы без везения. Я использую Apache CXF (v.2.5.11), и мне нужно отправить некоторый Json в конечную точку REST, и данные будут немаршалины к объекту Java (например, Карта).CXF - Нет читателя тела сообщения
Когда я отправляю запрос я получаю внутренняя ошибка сервера с
org.apache.cxf.jaxrs.utils.JAXRSUtils readFromMessageBody
WARNING: No message body reader has been found for request class Map, ContentType : application/json.
Я попробовал решение here, но с классом com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider
и Maven артефакта jackson-jaxrs-json-provider
(версия 2.5.4). Не повезло.
Моя конечная точка определяются как таковую:
@POST
@Path("/test")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response test(Map<String, Object> test) {
...
}
UPDATE
Так я понял, что если я вернусь к старой версии Codehaus от JacksonJsonProvider, распределительной работу штраф:
Весна:
<jaxrs:providers>
<bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/>
</jaxrs:providers>
С зависимостью:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId>
<version>1.9.0</version>
</dependency>
Так что я думаю, что-то изменилось в fasterxml 2.4+ версии.