2
我想編組/解組2自定義類型。類型1有一個List。編組按預期工作 - 我看到列表中每個type2元素都有一個單獨的元素,但是當我嘗試解組時,這不起作用。反編組列表<foo>與JAXB /澤西島
工作流
@XmlRootElement
public class Workflow {
private String userEmail;
private List<WorkflowStep> steps = new ArrayList<WorkflowStep>(5);
//required by jaxb
public Workflow() {
}
public void setSteps(List<WorkflowStep> steps) {
this.steps = steps;
}
public List<WorkflowStep> getSteps() {
//do a defensive copy
return new ArrayList<WorkflowStep>(steps);
}
public void setUserEmail(String email) {
userEmail = email;
}
public String getUserEmail() {
return userEmail;
}
}
WorkflowStep
@XmlRootElement
public class WorkflowStep {
private int cpu = 1;
private int mem = 1000;
private Map<String, String> parameters = Collections.emptyMap();
public WorkflowStep() {
}
public void setCpu(int numCores) {
cpu = numCores;
}
public int getCpu() {
return cpu;
}
public void setMem(int mb) {
mem = mb;
}
public int getMem() {
return mem;
}
}
下面是一個例子輸出,如果我從瀏覽器訪問Web服務:
<workflow>
<steps>
<cpu>1</cpu>
<inputId>237</inputId>
<mem>1000</mem>
<parameters/>
<status>NOT-YET-STARTED</status>
<stepId>1509</stepId>
<submoduleId>0</submoduleId>
<workflowId>797</workflowId>
</steps>
<steps>
<cpu>1</cpu>
<inputId>364</inputId>
<mem>1000</mem>
<parameters/>
<status>NOT-YET-STARTED</status>
<stepId>1510</stepId>
<submoduleId>3</submoduleId>
<workflowId>797</workflowId>
</steps>
<userEmail>[email protected]</userEmail>
<workflowId>797</workflowId>
<workflowName>test-name</workflowName>
</workflow>
WorkflowStep是編組/解組成功,但列表不能解組爲什麼?應用程序服務器和REST客戶端都不會收到任何錯誤或異常,客戶端只會忽略WorkflowSteps列表?從上面的示例輸出中,我期望每個元素都將被轉換爲WorkflowStep類型的對象,然後會自動添加到列表中?
如何做到這一點? – LordDoskias 2012-02-15 11:45:39
@LordDoskias - 我已經添加了指定字段訪問的其他信息。 – 2012-02-15 11:49:13
刷新後看到它。豎起大拇指! – LordDoskias 2012-02-15 11:51:31