【发布时间】:2013-10-02 15:07:33
【问题描述】:
我正在尝试发送带有肥皂头的 SOAP 请求,如下所示:
<SOAP-ENV:Header>
<Security xmlns="http://www.xxx.org/xxx/2003/05">
<UsernameToken><Username>yyyy</Username><Password>xxx</Password>
</UsernameToken></Security></SOAP-ENV:Header>
为了做到这一点,我使用SoapActionCallback添加标题元素
SoapActionCallback actionCallBack = new SoapActionCallback("https://aaa.com/bbb.asmx") {
public void doWithMessage(WebServiceMessage msg) {
SoapMessage smsg = (SoapMessage) msg;
smsg.setSoapAction("http://www.xxx.org/yyy/2003/05/SessionCreate");
SoapHeaderElement security = smsg.getSoapHeader().addHeaderElement(new QName("http://www.xxx.org/yyy", "Security"));
security.setText("<UsernameToken><Username>yyyy</Username><Password>xxx</Password></UsernameToken>");
}
};
我的问题是肥皂标题看起来像这样
<SOAP-ENV:Header><Security xmlns="http://www.xxx.org/yyy/2003/05"><UsernameToken><Username>yyyyy</Username><Password>xxxx</Password></UsernameToken></Security></SOAP-ENV:Header>
结果我的请求失败了:
如何正确添加此消息?
【问题讨论】:
-
您知道您可以将任何soap 元素转换为Java 元素或节点,然后获取文档并创建新的节点/元素并将它们附加到您当前的soap 元素中吗?话虽如此,您想要实现的目标可以通过 spring 配置
-
@VirtualTroll 如何展示它是如何做到的,而不是简单地说明它可以做到?看起来这将是一个很好的答案。
标签: spring jakarta-ee soap spring-ws