【问题标题】:How to convert SoapResponse to pojos(Java classes) and Class Objects to Soap Request如何将 SoapResponse 转换为 pojos(Java 类)和将类对象转换为 Soap 请求
【发布时间】:2021-02-01 17:59:54
【问题描述】:

我想阅读肥皂响应 - 我如何将肥皂响应转换为 pojos(类对象) 我也想发送soap post请求-如何将类对象转换为soap请求。

我需要这两种方式,你能帮帮我吗

【问题讨论】:

    标签: java soap jaxb soap-client saaj


    【解决方案1】:

    如果要将 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,您可以通过getSOAPPartgetSOAPBodygetSOAPHeader 访问您感兴趣的部分,它们会返回给您的 DOM 接口,您可以使用 JAXB 将其转换为 POJO。

    要序列化你只需要创建一个新的SOAPMessage,填充它并调用writeTo方法:

    final SOAPMessage soap = MessageFactory.newInstance().createMessage();
    ... // fill the message
    final OutputStream os = ...;
    soap.writeTo(os);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-11
      相关资源
      最近更新 更多