【发布时间】:2021-02-01 17:59:54
【问题描述】:
我想阅读肥皂响应 - 我如何将肥皂响应转换为 pojos(类对象) 我也想发送soap post请求-如何将类对象转换为soap请求。
我需要这两种方式,你能帮帮我吗
【问题讨论】:
标签: java soap jaxb soap-client saaj
我想阅读肥皂响应 - 我如何将肥皂响应转换为 pojos(类对象) 我也想发送soap post请求-如何将类对象转换为soap请求。
我需要这两种方式,你能帮帮我吗
【问题讨论】:
标签: java soap jaxb soap-client saaj
如果要将 SOAP 消息编组和解组到 POJO,可以使用 xjc 从架构 https://www.w3.org/2003/05/soap-envelope/ 生成 JAXB 绑定。
但是 SOAP 通常不使用 JAXB 来解组,而是通过一个专门的框架:SOAP with Attachments API for Java。该框架还可以解组带有附件的 SOAP:它是一个带有 XML SOAP 消息和一系列附件的multipart/related MIME 文档。
要使用 SAAJ 进行反序列化,请使用 MessageFactory 并提供消息的 MIME 标头和输入流:
final InputStream is = ...;
final MimeHeaders mimeHeaders = ...;
final SOAPMessage soap = MessageFactory.newInstance().createMessage(mimeHeaders, is);
如果您有SOAPMessage,您可以通过getSOAPPart、getSOAPBody、getSOAPHeader 访问您感兴趣的部分,它们会返回给您的 DOM 接口,您可以使用 JAXB 将其转换为 POJO。
要序列化你只需要创建一个新的SOAPMessage,填充它并调用writeTo方法:
final SOAPMessage soap = MessageFactory.newInstance().createMessage();
... // fill the message
final OutputStream os = ...;
soap.writeTo(os);
【讨论】: