2016-05-16 54 views
0

當我調用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響應的任何機會呢?

+0

你爲什麼想這樣做? – chrylis

+0

1.我不想爲不同的響應創建類似的類。 2.我不知道我得到了什麼迴應。所以,如果我得到第二個反應,我嘗試解組,我有一個錯誤。 – Vladimir

回答

0

嘗試爲您的兩個不同的響應及其相應的根創建兩個不同的子類。 您可以將當前類作爲父級發佈給他們,並根據您將得到的響應調用所需的類。

+0

你能舉出一些代碼的例子,我認爲你是不對的。 – Vladimir

+0

我的建議是這樣的 http://stackoverflow.com/questions/33098330/jaxb-marshal-unmarshal-different-xml-elements-to-from-one-class/33148115 –

相關問題