如何将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客户端的正确方法。
回答:
那么,最简单的方式做这将是创建ArrayList
的Header
对象,并添加所有的参数或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