无法使用Jersey Client API和Jackson从JSON响应中获取对象

时间:2017-02-28 00:59:06

标签: json jackson jax-rs jersey-client

我有一个使用JAX-RS Client API来调用服务的测试方法。当我运行此代码时:

Response response = target.request(MediaType.APPLICATION_JSON).get();

List<Thing> list = response.readEntity(new GenericType<List<Thing>>() {});

我收到此错误:

Unable to find a MessageBodyReader of content-type application/json and type interface java.util.List

我正确配置了jersey-media-json-jackson依赖项(我正在调用的服务使用它),项目在WildFly 10上运行。

我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

我认为你可以这样做:

ObjectMapper mapper = new ObjectMapper();
List<Thing> = (List<Thing>)mapper.readValue(response.getEntityInputStream(), List.class);

答案 1 :(得分:0)

这个问题显然是由Jersey和RESTEasy之间的冲突造成的。

我无法找到在WildFly 10中禁用RESTEasy的方法,因此我最终删除了项目中的所有Jersey依赖项。

由于我只使用JAX-RS标准功能,因此工作正常。