在axis2 (v 1.5.6) 生成的存根中禁用Web 服务寻址属性

问题描述

我有一个使用 wsdl2java 生成的 axis2 (v 1.5.6) 存根,从存根生成的请求包含请求中不需要的不需要的肥皂网络服务寻址 (wsa) 属性,接收此请求的端点不会不支持这个。

我已经看到很多通过手动迭代整个soap信封来删除元素的方法,但我需要一些方法来从存根或整个axis2本身完全禁用它。下面是请求中生成的元素。

PS:wsdl 甚至没有定义 wsa 是必需的。

感谢任何回答。谢谢。

   <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">


  <wsa:To>url</wsa:To>
  <wsa:MessageID>F94EAE5F6CECC13E7F1610961403620</wsa:MessageID>
  <wsa:Action>Upload</wsa:Action>

Completely removing wsa elements manually

解决方法

回答我自己的问题, 在挖掘了axis2 的源代码之后,我尝试在存根的服务客户端的选项中设置它并且它起作用了,现在从请求中删除了 wsa 元素。

        _serviceClient.getOptions().setProperty(org.apache.axis2.addressing.AddressingConstants.DISABLE_ADDRESSING_FOR_OUT_MESSAGES,Constants.VALUE_TRUE);