我在调用 Web 服务时遇到了一个奇怪的问题。我的 stub 生成类似于格式 2 的 SOAP 消息,但服务器期望类似于下面格式 1 的内容。 在axis 1.3中的数组序列化中,以下格式的含义是什么。
下面的 arrayItemType 是正在序列化的对象类型,arrayItemName 是该对象的名称。
1)
<arrayItemName>
<arrayItemType></arrayItemType>
<arrayItemType></arrayItemType>
</arrayItemName>
2)
<arrayItemName>
</arrayItemName>
<arrayItemName>
</arrayItemName>
最佳答案
问题是您的 WSDL 文件是什么风格? SOAP 文档取决于 WSDL 文件中使用的样式。
第一种格式是包裹样式,因为元素被包裹在:
<arrayItemName> ... </arrayItemName>
所以我猜想,如果您的 stub 生成类似于格式 2 的 SOAP 消息,它会使用 rpc/encoded 或除包装样式之外的任何其他 WSDL 样式。因此,我建议您始终对 wsdl 文件使用 document/literalwrapped 样式,并且在使用不同堆栈等生成客户端时会出现任何问题。
您可以在此处找到有关 WSDL 样式的有用信息:http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/
关于java - Axis 中的数组序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10538321/