1

首先,我使用 WSDL 文件使用 jsonschema2pojo 插件生成了 pojo 类。

我的 WSDL 文件包含标题和正文。

Body Root Pojo 看起来像这样:

public class SubmitCustomerOrderRequest { 

    @XmlElement(required = true)
    protected List<Order> order;
 }

标题如下所示:

public class MessageHeader {
   .....
}

现在在骆驼的一个进程类中,我将SubmitCustomerOrderRequest(这里这个pojo只考虑正文而不是标题)放入正文中,如下所示:

submitCustomerOrderRequest.setOrder(orderList);
exchange.getIn().setBody(submitCustomerOrderRequest);

现在在路线中,我正在使用这个概念进行编组

SoapJaxbDataFormat soapDF = new SoapJaxbDataFormat("org.com.model",
new ServiceInterfaceStrategy(order.class, true));

并像这样编组到 xml 中:

.marshal(soapDF)

现在这里的问题是,它生成xml但没有header,如何在流程类中也包含header,以便在转换为xml时,它生成的header也带有body

它的生成是这样的:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:Envelope xmlns:ns2="org.com" xmlns:ns3="org.com.something">
   <ns2:Body>
      <ns3:submitCustomerOrderV3Request>          
      </ns3:submitCustomerOrderV3Request>
   </ns2:Body>
</ns2:Envelope>

而我需要这样的标题:

<SOAP-ENV:Envelope xmlns:SOAP-ENV=org.com>
   <SOAP-ENV:Header>
      <messageHeader xmlns=org.om>
      </messageHeader>
   </SOAP-ENV:Header>
   <SOAP-ENV:Body>
      <ns2:submitCustomerOrderV3Request xmlns:ns2=org.com>
      </ns2:submitCustomerOrderV3Request>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

任何帮助都是不言而喻的。

4

0 回答 0