您好我有肥皂请求
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:TrackRequest xmlns:ns4="namespace4" xmlns:ns3="namespace3" xmlns:ns2="namespace2" xmlns="namespace1">
<Request>
<RequestOption>BB</RequestOption>
</Request>
<ns2:InquiryNumber>AA</ns2:InquiryNumber>
</ns2:TrackRequest>
</soap:Body>
我想以这种方式
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<ns3:MYSecurity xmlns:ns3="namespace3">
<ns3:UsernameToken>
<ns3:Username>5</ns3:Username>
<ns3:Password>N</ns3:Password>
</ns3:UsernameToken>
<ns3:ServiceAccessToken>
<ns3:AccessLicenseNumber>AC</ns3:AccessLicenseNumber>
</ns3:ServiceAccessToken>
</ns3:MYSecurity>
</soap:Header>
<soap:Body>
<soap:Body>
<ns2:TrackRequest xmlns:ns4="namespac4" xmlns:ns3="namespace3" xmlns:ns2="namespace2" xmlns="namespace1">
<Request>
<RequestOption>BB</RequestOption>
</Request>
<ns2:InquiryNumber>AA</ns2:InquiryNumber>
</ns2:TrackRequest>
</soap:Body>
如何使用mule SOAP CXF组件执行此操作?我们可以使用
public class SecurityHeaderInterceptor extends AbstractSoapInterceptor {
// java代码 }
使用Java执行此任务的类文件?如果可以怎么样?它需要在添加标题后输入。
答案 0 :(得分:2)
您可以扩展org.apache.cxf.phase.AbstractPhaseInterceptor,然后修改SOAPMessage标头。
检查此链接以获取写入SOAPMessage标头的示例实现:https://www.classle.net/#!/classle/content-page/intercepting-soap-message/
答案 1 :(得分:0)
我们可以使用org.apache.cxf.binding.soap.interceptor.AbstractSoapInterceptor并覆盖handleMessage(SoapMessage消息)