2010-07-31 19 views
1

我正在使用Redmine的xml rest api。该服务返回xml,如下例所示。我正在使用Jersey Client API与宁静的服务进行通信。在项目中映射纯字段(id,名称等)没有问题,但我在跟踪器列表中遇到问题。将xml解组到一个具有colleciton的bean

<project> 
    <id>2</id> 
    <name>Project X</name> 
    <identifier>projectx</identifier> 
    <description>Description of Project X</description> 
    <homepage/> 
    <created_on>Sat Jul 31 18:16:59 +0200 2010</created_on> 
    <updated_on>Sat Jul 31 18:16:59 +0200 2010</updated_on> 

    <trackers> 
     <tracker name="Bug" id="1"/> 
     <tracker name="Feature" id="2"/> 
     <tracker name="Support" id="3"/> 
    </trackers> 
</project> 

项目bean,我已经删除了所有普通的getter和setter方法。

@XmlRootElement 
@XmlSeeAlso(Tracker.class) 
public class Project { 

    private int id; 
    private String name, identifier; 
    private String description; 
    Date createdOn, updatedOn; 

    ArrayList<Tracker> trackers = new ArrayList<Tracker>(); 

    public Project() { 
    } 

    // Removed getters and setters... 

    public ArrayList<Tracker> getTrackers() { 
     return trackers; 
    } 

    @XmlElement 
    public void setTrackers(ArrayList<Tracker> trackers) { 
     this.trackers = trackers; 
    } 

} 

跟踪器bean,再次删除简单的getter和setter以提高可读性。

@XmlRootElement 
public class Tracker { 

    private String name; 
    private int id; 

    // Removed getters 

    @XmlAttribute 
    public void setId(int id) { 
     this.id = id; 
    } 

    @XmlAttribute 
    public void setName(String name) { 
     this.name = name; 
    } 

} 

项目上的所有平原字段都按预期方式坐了下来,但我无法获得它来设置跟踪器列表。我究竟做错了什么?到目前为止,我所管理的最好的方式是获得一个空值的列表。

提前致谢!

回答

相关问题