我需要在 jax-rs 客户端中使用 jax-b 编组一个实体列表,而不需要为每个需要的实体创建一个包装类(有很多实体!)。我注意到该服务能够编组这样的客户列表:
<customers>
<customer>.....</customer>
<customer>.....</customer>
</customers>
我在客户端能够通过查找所有客户节点并将它们手动添加到列表中来解组。(我想有更好的方法来做到这一点?)
现在,真正的问题是当我想向服务发送实体(例如客户)列表时。在将此字符串作为对服务的请求的有效负载之前,我想将此列表编组为一个 xml 字符串。这不起作用,因为编组器不知道 java.util.List 或其后代。
javax.xml.bind.Marshaller.marshal(list, StringWriter);
javax.xml.bind.Unmarshaller.unmarshal(org.w3c.dom.node)
任何帮助深表感谢!
谢谢!-Runar
编辑:
这是客户类的一个片段:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Customer implements Serializable {
private String name;
.....
}
我正在尝试使用不属于标准实现的第 3 方库来编写轻量级客户端。因此,我编写了自己的 httpclient 接收有效负载对象,将它们编组并将它们传递给请求的有效负载。收到响应后,我读取 xml 并将其发送到解组。如果我可以像我的 jax-rs 服务那样直接对字符串进行编组/解组,那就太棒了。