相关疑难解决方法(0)

如何将SOAP标头添加到Spring Jax-WS客户端?

如何将SOAP标头添加到Spring Jax-WS客户端?

具体来说,我有一个Jaxb对象,我想添加到标题,但xml示例将不胜感激.

我正在使用这里描述的Spring的JaxWsPortProxyFactoryBean .此外,我正在生成我的客户端,如此处所述,它减少了我需要添加的标头.

谢谢.

java spring jax-ws soapheader

13
推荐指数
3
解决办法
2万
查看次数

Spring WS客户端添加了SoapHeader

我正在尝试使用soap标头发送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>
Run Code Online (Sandbox Code Playgroud)

为了做到这一点,我正在使用添加标题元素 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>");
            }
        };
Run Code Online (Sandbox Code Playgroud)

我的问题是soap标题看起来像这样

<SOAP-ENV:Header><Security xmlns="http://www.xxx.org/yyy/2003/05">&lt;UsernameToken&gt;&lt;Username&gt;yyyyy&lt;/Username&gt;&lt;Password&gt;xxxx&lt;/Password&gt;&lt;/UsernameToken&gt;</Security></SOAP-ENV:Header>
Run Code Online (Sandbox Code Playgroud)

结果我的请求失败了:

如何正确添加此消息?

spring soap spring-ws java-ee

5
推荐指数
1
解决办法
5810
查看次数

标签 统计

spring ×2

java ×1

java-ee ×1

jax-ws ×1

soap ×1

soapheader ×1

spring-ws ×1