我有一个使用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上运行。
我错过了什么吗?
答案 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标准功能,因此工作正常。