CXF - без чтения тела сообщения

Я пробовал многие решения на этом форуме, чтобы решить эту проблему, но безуспешно. Я использую Apache CXF (v.2.5.11), и мне нужно отправить Json в конечную точку REST и неупорядочить данные в объект Java (например, Map).

Когда я отправляю запрос, я получаю внутреннюю ошибку сервера с

org.apache.cxf.jaxrs.utils.JAXRSUtils readFromMessageBody
WARNING: No message body reader has been found for request class Map, ContentType : application/json.

Я попробовал решение здесь, но с классом 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) {
    ...
}

ОБНОВЛЕНИЕ

Итак, я понял, что если я вернусь к старой версии JacksonJsonProvider для codehaus, маршаллинг будет работать нормально:

Контекст Spring:

<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>

Думаю, что-то изменилось в версии Fastxml 2.4+.


person user1491636    schedule 02.12.2015    source источник


Ответы (1)


Я столкнулся с той же проблемой.

Согласно http://osdir.com/ml/users-cxf-apache/2013-06/msg00212.html произошла ошибка в cxf до 2.7.6.

Поэтому попробуйте перейти на cxf 2.7.6 (или новее), и ваш код должен снова заработать.

person monsIgnore    schedule 16.08.2016