java – 泽西编组成员列表问题

我正在使用Java Jersey 1.x来编组一个具有多个成员的对象,其中一个是列表.正确编组所有成员变量并使用正确的返回类型返回.但是,它不包括返回数据中的objectList.

例:

@XmlRootElement
public class ClassWithList {
    private String front;
    private int total;
    private ArrayList<AnotherPOJOObject> objectList;
...
getters/setters

消气:

public List<AnotherPOJOObject> getObjectList() {
    return objectList;
}

我调试它并检查objectList确实填充了数据.
 另一个POJOObject也注释为XmlRootElement

解决方法:

看看http://docs.oracle.com/javase/6/docs/api/javax/xml/bind/annotation/XmlAccessorType.html.它详细说明了JAXB如何尝试序列化POJO.特别要注意的是,它默认只对公共成员 – 这意味着“每个公共getter / setter对和每个公共字段都将自动绑定到XML,除非通过XmlTransient注释”.在这种情况下,我猜你没有objectList的公共setter字段,所以JAXB不会序列化它.要获取序列化列表,您可以:

>为objectList添加公共setter方法
>将objectList声明为public(可能不是一个好主意)
>向getter添加一个@XmlElement注释,以显式告诉JAXB将列表封送到XML.

上一篇:java – 泽西岛休息api安全


下一篇:java – 自定义提供程序无法注入过滤器