java - 如何将 SoapResponse 转换为 pojos(Java 类)和将类对象转换为 Soap 请求
问题描述
我想阅读肥皂响应-如何将肥皂响应转换为 pojos(类对象) 另外我想发送肥皂发布请求-如何将类对象转换为肥皂请求。
我需要两种方式,你能帮帮我吗
解决方案
如果要将 SOAP 消息编组和解组到 POJO,可以使用xjc从 schema 生成 JAXB 绑定https://www.w3.org/2003/05/soap-envelope/
。
然而 SOAP 通常不使用 JAXB 解组,而是通过一个专门的框架:SOAP with Attachments API for Java。该框架还可以解组带有附件的 SOAP:它是一个multipart/related
带有 XML SOAP 消息和一系列附件的 MIME 文档。
要使用 SAAJ 进行反序列化,请使用 aMessageFactory
并提供消息的 MIME 标头和输入流:
final InputStream is = ...;
final MimeHeaders mimeHeaders = ...;
final SOAPMessage soap = MessageFactory.newInstance().createMessage(mimeHeaders, is);
如果您有,您可以通过,SOAPMessage
访问您感兴趣的部分,这会返回您的 DOM 接口,您可以使用 JAXB 将其转换为 POJO。getSOAPPart
getSOAPBody
getSOAPHeader
要序列化你只需要创建一个新的SOAPMessage
,填充它并调用writeTo
方法:
final SOAPMessage soap = MessageFactory.newInstance().createMessage();
... // fill the message
final OutputStream os = ...;
soap.writeTo(os);
推荐阅读
- firefox - Firefox 报告窗口句柄问题
- python - 从 SQL SERVER 查询到 PANDASQL DATEDIFF 分钟内返回
- asp.net - 用于 OpenIdConnect 的 MSAL?
- reactjs - 如何在 Switch Chakra UI 组件上切换颜色模式更改?
- javascript - Javascript - 使用 s57(.000 文件)显示地图
- html - 在这种情况下如何从最后一个孩子中删除边距?
- javascript - 按钮调用的函数与其应该调用的函数完全不同
- xamarin - XA5104 找不到 Android NDK
- salesforce - Salesforce 站点的头部标记
- jenkins - 如何在 Jenkins 上启用“构建环境”会话?