[英]Parse SOAP response from XML file into object
我有一個可以運行 SOAP 集成的項目,我需要編寫一些測試。
為了避免在測試期間進行 Web 服務調用,我將一些 SOAP 響應保存到 XML 文件中,但我不知道如何將這些 XML 轉換為適當的對象。
我試過使用JAXBContext
/ Unmarshaller
,但我得到錯誤expected elements are (None)
,我認為這與與 XML 響應關聯的類沒有@XmlRootElement
注釋(我可以) t 改變這個)。
這個問題與我的非常相似,但當前的答案並沒有真正指定如何從響應中獲取最終對象。
我也不清楚是否必須保留特定於 SOAP 的標記,或者是否更容易剝離它們並將文件視為普通的 XML。
看到這個答案后,我得到了它的工作。
問題是缺少@XmlRootElement
,為了使其工作,應該使用unmarshall()
的 2 參數版本,如下所示(來自另一個問題的代碼):
String pathname = "file.xml";
InputStream stream = new FileInputStream(pathname);
JAXBContext jaxbContext = JAXBContext.newInstance(UserType.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLEventReader someSource = factory.createXMLEventReader(stream);
JAXBElement<UserType> userElement = jaxbUnmarshaller.unmarshal(someSource, UserType.class); UserType user = userElement.getValue();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.