为什么org.springframework.ws.soap.addressing.client.ActionCallback.getTo()
初始化wsa:to
属性?
WS-Addressing 1.0 W3C Recomendation说wsa:to
属性是可选的:
/ wsa:收件人
此OPTIONAL元素(其内容的类型为xs:anyURI)提供[destination]属性的值。如果这个元素是 不存在,则[destination]属性的值是 “ http://www.w3.org/2005/08/addressing/anonymous”。
即使如此,如Spring-WS WSA header contains hardcoded mustUnderstand attribute所述,AbstractAddressingVersion.addAddressingHeaders()
,也将mustUnderstand = true
设置为元素:
if (map.getTo() != null) {
SoapHeaderElement to = header.addHeaderElement(getToName());
to.setText(map.getTo().toString());
to.setMustUnderstand(true);
}
因此得到的消息是:
<SOAP-ENV:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:To SOAP-ENV:mustUnderstand="1">https://example.com/ws/bla</wsa:To>
...
</SOAP-ENV:Header>
我不希望wsa:to
属性出现在邮件中,或者不包含mustUnderstand="1"
。