java - 什么是 C# WCF AddressHeader 的 Java Apache CXF 等价物?
问题描述
我正在尝试从 Java 后端服务访问用 C# 编写的基于 SOAP 的旧系统。此 C# 应用程序正在寻找在每个请求中填充特定值的AddressHeader 。我正在使用 Apache CXF 创建对该服务的请求。不幸的是,在我的一生中,我无法找到如何将此地址标头添加到每个请求中。有谁知道 Java 中的等价物是什么以及如何使用 Apache CXF 添加它?
解决方案
地址标头与标头相同SOAP
,因此我们只需要为每个请求添加特定的 SOAP 标头即可成功调用。
这是我在网上找到的一个例子。
ClientProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(singz.ws.cxf.sample.SampleServiceInterface.class);
factory.setAddress("http://xxx.xxx.com/services/SampleService/v1");
SampleServiceInterface serviceClient = (SampleServiceInterface) factory.create();
Client proxy = ClientProxy.getClient(serviceClient);
List<Header> headersList = new ArrayList<Header>();
Header testSoapHeader1 = new Header(new QName("uri:singz.ws.sample", "soapheader1"), "SOAP Header Message 1", new JAXBDataBinding(String.class));
Header testSoapHeader2 = new Header(new QName("uri:singz.ws.sample", "soapheader2"), "SOAP Header Message 2", new JAXBDataBinding(String.class));
headersList.add(testSoapHeader1);
headersList.add(testSoapHeader2);
proxy.getRequestContext().put(Header.HEADER_LIST, headersList);
请参考以下链接,希望对您有用。
https://dzone.com/articles/apache-cxf-how-add-custom-soap-0
如何将 wsdl 中定义的 Soap Header 添加到 CXF 中的 Web 服务客户端?
https://dzone.com/articles/apache-cxf-how-add-custom-soap
如果有什么我可以帮忙的,请随时告诉我。
推荐阅读
- angular - 在 Angular 项目中找不到带有 https 连接的页面
- r - 使用 ggplot() 中的函数 sprintf() 将条形图中的单个条形标记为 3 个有效数字
- google-cloud-platform - 无法连接到 GCP 中的 SQL 云实例
- angular - 将数据提取到 Angular 表单数组
- wxpython - 混合使用 PyPubSub 和 wxPython 的内置 pubsub 模块
- angular - 在不克隆的情况下覆盖 Angular HttpClient
- android - RecyclerView - 如何仅在拖放时获得位置?
- odoo - 在常见的Odoo方法'execute_kw'中,后缀'kw'指的是什么?
- c - 当我在堆栈上分配大量内存时,C 程序崩溃
- excel-formula - 多个 COUNTIFS,带有可变文本和数字以及命名范围