【问题标题】:Unable to get object from JSON response using Jersey Client API and Jackson无法使用 Jersey Client API 和 Jackson 从 JSON 响应中获取对象
【发布时间】:2017-02-28 00:59:06
【问题描述】:

我有一个使用 JAX-RS 客户端 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 上运行。

我错过了什么吗?

【问题讨论】:

    标签: json jackson jax-rs jersey-client


    【解决方案1】:

    我认为你可以这样做:

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

    【讨论】:

      【解决方案2】:

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

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

      由于我只使用 JAX-RS 标准功能,所以效果很好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-20
        • 2019-08-15
        • 1970-01-01
        • 2016-02-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多