如何将wsdl中定义的Soap Header添加到CXF中的Web服务客户端?

我有一个wsdl,它定义了在调用Web服务时需要传递的soap标头。

样本SOAP标头是:

<soapenv:Header>

<AuthenticationInfo>

<userName>User</userName>

<password/>

</AuthenticationInfo>

</soapenv:Header>

CXF的wsdl2java生成了一个“ AuthenticationInfo”

java类,我可以使用用户名和密码来创建和填充该类,但是我不知道在调用Web服务时将其传递给CXF客户端的正确方法。

回答:

那么,最简单的方式做这将是创建ArrayListHeader对象,并添加所有的参数或Map<String,Object>并添加所有的标头,map.put("param1",param1).

最后获取您的请求上下文,并将此map的数组列表添加为

requestContext.put(MessageContext.HTTP_REQUEST_HEADERS,

soapHeaders);

如果您尝试传递自定义的Soap标头,请参考THIS LINK。

本讨论中提到了一般的陷阱。这可能对您有帮助。

以上是 如何将wsdl中定义的Soap Header添加到CXF中的Web服务客户端? 的全部内容, 来源链接: utcz.com/qa/426445.html

回到顶部