【发布时间】:2012-10-23 09:08:27
【问题描述】:
我需要在 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
编辑:
这是来自客户类的一个 sn-p:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Customer implements Serializable {
private String name;
.....
}
我正在尝试使用不属于标准实现的第三方库来编写轻量级客户端。因此,我编写了自己的 httpclient 接收有效负载对象,将它们编组并将它们传递给请求的有效负载。收到响应后,我读取 xml 并将其发送到解组。如果我可以像我的 jax-rs 服务那样直接对字符串进行编组/解组,那就太棒了。
【问题讨论】:
-
请提供更多用于编组对象列表的代码。
-
希望这会有所帮助,如果没有,请不要犹豫,要求更多;)