私はrestサービスをコールすると、異なるxmlルート要素を持つ異なるxml応答を取得します。私は、これらのXMLを一つのpojoクラスに非整列化する機会があることを知りたいと思います。xmlレスポンスごとに1つの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>
の形でそして、私は最初のXML resposneを得た
<error>
<code>444</code>
<description>broker: access denied</description>
</error>
の形式のXML応答を取得することができ、JAXBは良い非整列化
JAXBContext jaxbContext = JAXBContext.newInstance(RecordingCreated.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
RecordingCreated recordingCreated = (RecordingCreated) jaxbUnmarshaller.unmarshal(inputStream);
予想外の要素(URI: ""、 ローカル: "エラー")私は2番目の応答を得たときしかし、もちろん、私はこの
javax.xml.bind.UnmarshalExceptionのように、エラーが発生しました。予想される要素は<ある{} recordingCreated>]]
質問:は別のルート要素を持つ一つのクラスアンマーシャリング2つのさまざまなXML応答を有する任意の機会はありますか?
なぜそれをしたいですか? – chrylis
1.私は、異なる応答のために同様のクラスを作成したくありません。 2.私はどのような反応を得るのか分かりません。だから私は2番目の応答を取得し、私はunmarshalしようとするとエラーが発生している。 – Vladimir