如何在Jersey / JaxB中将嵌套集合从POJO编组到XML?

时间:2013-06-20 04:43:18

标签: java jaxb jersey

我在Jersey v1.13中有两个注释如下的类:

@XmlRootElement(name="request_pojo")
public class RequestPojo {
    public String name;

    @XmlElementWrapper(name = "nested_pojos")
    @XmlElement(name = "nested_pojo")
    public List<NestedPojo> nestedPojo;
}

@XmlRootElement(name="nested_pojo")
public class NestedPojo {
    public String name;
}

当我尝试使用Jersey客户端序列化RequestPojo时收集NestedPojo的{​​{1}}时...我不会在日志中看到它们被编组:

INFO: 1 * Client out-bound request
23:30:45 web.1  | 1 > POST https://localhost:443/test/
23:30:45 web.1  | 1 > Content-Type: application/xml
23:30:45 web.1  | <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                  <request_pojo>
                    <name>blah</name>
                  </request_pojo>

为了看到以下内容被泽西客户端放到线上,我需要修理什么?

<request_pojo>
  <name>blah</name>
  <nested_pojos>
    <nested_pojo>
      <name>nested blah</name>
    </nested_pojo>
  </nested_pojos>
</request_pojo>

1 个答案:

答案 0 :(得分:1)

至于我,你的代码运作良好。
可能的问题:
1)在List的实现中,没有实现迭代器 2)nestedPojo为空或null。调试项目来检查它