【问题标题】:Jersey XML into Map泽西 XML 到地图
【发布时间】:2016-09-20 23:05:36
【问题描述】:

由于旧的项目决策,我从事一个项目,该项目使用 Jersey 连接到返回 XML 数据的服务。有时我可以创建带有XmlRootElement 注释的bean/pojo/whatever 并使用webTarget.get(MyPojo.class)

但是,如果我尝试做我会做的事情,比如杰克逊,然后做webTarget.get(Map.class),我会收到以下错误:

MessageBodyReader not found for media type=text/xml, type=interface java.util.Map, genericType=interface java.util.Map.

我的情况是,我有一个可以包含任意字段的 XML,所以阅读它的理想方式是阅读 Map。有什么方法可以做到这一点而不必依赖其他库?我不需要序列化数据,只需反序列化来自我连接到的 Web 服务的响应。

【问题讨论】:

    标签: java xml jersey


    【解决方案1】:

    找到答案了,有点郁闷。

    根据Unofficial JAXB Guide,你不能使用Map 作为根元素,除非你做了一个非常丑陋的hack,描述在那里。因此,解决方案是:

    1. 读取为String,并使用Jackson 从字符串中读取Map
    2. 做丑陋的黑客攻击。
    3. 在 bean 中描述部分模式,但可以将具有可变字段的部分反序列化为 Map

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-11
      • 2014-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      相关资源
      最近更新 更多