问题就在这儿:如果服务器要求空值 soapaction,有些客户端将无法满足这一要求,因为并非所有 http 客户端 api 都 具有设置空 http 标头值的方法。这种问题可能存在两种解决方法:修正客户端 api 和/或确保服务器不要求空值 soapaction。通常,避免这类问题的唯一方法是确保所使用的 http api 稳定强壮,并且已知可以在 web 上工作。即便如 此,这类问题仍可能出现;要彻底消除它们,测试可能是唯一的方法。
xml 问题 这是可能存在的第二类互操作性问题,它们涉及到 xml 语法分析和 xsd 架构处理。soap 使用 xml 和 xml 架构作为核 心,因此这两者的互操作性是 soap 互操作性的基础。
另外,有关 xml web 服务的许多讨论和测试已经在 http://groups.yahoo.com/group/soapbuilders(英文)、 http://www.mssoapinterop.org/(英文)和 http://www.xmethods.net/ilab/(英文)等站点上进行。这些站点包含到许 多互操作性测试端点的链接。构建 soap 堆栈的所有人员都应该阅读这些档案并参与互操作性测试。
后续话题 本文简要概括了在 xml web 服务领域中发现的一些早期互操作性问题。不过,这方面的讨论并不会就此停止。除了通过 http 进行 rpc 调用之外,soap 还有许多更为有趣的情况需要讨论。其中包括“document”形式的消息传递、基于 smtp 和其它传输机制的 soap、wsdl 以及各种 soap 标头测试 - 所有这些都值得在今后的文章中进行讨论。