當我調用rest服務時,我得到不同的xml響應,帶有不同的xml根元素。我想知道,是否有機會將這些xmls解組到一個pojo類。針對不同的xml響應使用一個POJO類
例如,我有一個類RecordingCreated。
@XmlRootElement(name = "recordingCreated")
public class RecordingCreated {
private String nodeID;
private String cameraID;
private String recPath;
private String recordingStatus;
public String getNodeID() {
return nodeID;
}
@XmlElement
public void setNodeID(String nodeID) {
this.nodeID = nodeID;
}
public String getCameraID() {
return cameraID;
}
@XmlElement
public void setCameraID(String cameraID) {
this.cameraID = cameraID;
}
public String getRecPath() {
return recPath;
}
@XmlElement
public void setRecPath(String recPath) {
this.recPath = recPath;
}
public String getRecordingStatus() {
return recordingStatus;
}
@XmlElement
public void setRecordingStatus(String recordingStatus) {
this.recordingStatus = recordingStatus;
}
}
調用REST服務後,我可以得到的
<recordingCreated>
<nodeID>"111</nodeID>
<cameraID>222</cameraID>\
<recordingID>333</recordingID>\
<recPath>rec</recPath>
<recordingStatus>recorded</recordingStatus>
</recordingCreated>
的形式和在
<error>
<code>444</code>
<description>broker: access denied</description>
</error>
當我拿到第一個XML resposne形式XML響應,JAXB解組好
JAXBContext jaxbContext = JAXBContext.newInstance(RecordingCreated.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
RecordingCreated recordingCreated = (RecordingCreated) jaxbUnmarshaller.unmarshal(inputStream);
但是,當我第二個反應,當然,我得到了一個錯誤,這樣
javax.xml.bind.UnmarshalException:意外的元素(URI: 「」, 地方: 「錯誤」)。預計元素< {} recordingCreated>]
問:是否有具有不同的根元素一類解組2個各種XML響應的任何機會呢?
你爲什麼想這樣做? – chrylis
1.我不想爲不同的響應創建類似的類。 2.我不知道我得到了什麼迴應。所以,如果我得到第二個反應,我嘗試解組,我有一個錯誤。 – Vladimir