首先,我使用 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>
任何帮助都是不言而喻的。