繁体   English   中英

将 XML 文件中的 SOAP 响应解析为对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM