我需要与SOAP服务交互时遇到了很多麻烦这样做; 真的很感激有这方面的指针。 原始的错误消息是:
org.apache.axis2.databinding.ADBException: Any type element type has not been given
经过一番研究,事实证明,这是肥皂水之间的意见分歧,服务器必须如何与应对
type="xsd:anyType"
有问题的元件。
我已经使用SOAPUI并确认该问题可以通过采取这些步骤是固定的意见后:
- 添加的xsi:type =“XSD:字符串”到其每一个会导致问题元件
- 添加的xmlns:XSD = “http://www.w3.org/2001/XMLSchema” 中的SOAP信封
所以,在目前使用仪器做到这一点:
<SOAP-ENV:Envelope ... xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<ns3:Body>
<ns0:method>
<parameter>
<values>
<table>
<key>EMAIL_ADDRESS</key>
<value>example@example.org</value>
</table>
</values>
</parameter>
</ns0:method>
它应该改为产生这样:
<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" ... xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<ns3:Body>
<ns0:method>
...
<parameter>
<values>
<table>
<key xsi:type="xsd:string">EMAIL_ADDRESS</key>
<value xsi:type="xsd:string">example@example.org</value>
</table>
</values>
</parameter>
</ns0:method>
有没有做这个正确的方式? 我见过使用ImportDoctor或MessagePlugins的建议,但还没有真正grokked如何达到预期的效果。