当前位置: 首页 > 面试题库 >

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

江烨伟
2023-03-14
问题内容

我有一个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,它定义了在调用Web服务时需要传递的soap标头。 样本SOAP标头是: CXF的wsdl2java生成了一个“ AuthenticationInfo” java类,我可以使用用户名和密码来创建和填充该类,但是我不知道在调用Web服务时将其传递给CXF客户端的正确方法。 问题答案: 那么,最简单的方式做这将是创建的对象,并添加所有的参数或并添加所有的标头, 最后获取您

  • 问题内容: 我正在尝试使用CXF创建Web服务客户端以使用WCF Web服务。当我使用wsdl2java时,它将生成具有JAXBElement类型而不是String的对象。 我读到有关使用jaxb bindings.xml文件设置generateElementProperty =“ false”来尝试解决此问题的信息,但是我使用的Web服务包含7个导入的架构。 如何在所有七个模式上指定,还是可以将

  • 我试图从WSDL生成web服务客户机,我对这一点一无所知,所以无法找出错误。我试过: 这给了我一个错误: 我还尝试了apache cxf 3.1.1在eclipse中生成Web服务客户端,但得到这个错误: 我的WSDL文件是: 请帮我找出任何方式的错误,无论是wsimport还是apache cxf。我会非常感激的。

  • 我们正在Spring Boot中构建CXF客户端。用于针对SOAP服务器进行身份验证/授权的SAML令牌在每个请求中都从外部身份验证代理以自定义HTTP头提供给我们的应用程序。因此,我需要一种方法将提供的令牌添加到每个传出的CXF请求中。 我知道我可以为此注册一个定制的CXF拦截器。然而, 我该如何在Spring Boot中注册拦截器? 如果没有拦截器,还有什么选择? 目前,Spring配置如下所

  • 我有一个具有WSDL定义的非常基本的WCF服务,如下所示: 我想添加名称空间xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance“根据定义,但我不知道在哪里以及如何。 如何添加该名称空间?非常感谢。

  • 我了解如何简单地将“标准”ws-addressing头添加到cxf客户端调用: 但是我不明白如何添加wsa引用参数,以便消息的肥皂剧头如下所示: 如何在cxf客户端调用中添加此标头? 你好,soilworker