问题描述
我有一个使用 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);