提高J2EE技术和.NET之间的互操作性,第1部分 - 编程入门网
一个 Person 类型的友元,并且不能有其它类型和属性。然而,序列化的 SOAP 响应消息( 清单 3)当然不符合这个规则。响应消息中的 href 没有在定义中出现。对于这个问题,怎样告诉接收者元素 A 和 B 是 Person 类的实例呢?
事实上,如果您编写一个 .NET 客户来与这个 Web 服务交互, .NET 客户将不能够正确地逆序列化 清单 3 所示的 WebSphere 响应。.NET 客户期望的描述 John 和 Jason 是友元的响应消息如下所示: 清单 5:来自 .NET 的 SOAP 编码响应消息 正如您看到的,多引用访问器编码是很强大的,但是它很难在 XSD 中表达。因此在不同的平台之间的实现有些细微的不同,如 清单 3 和 清单 5 所示。示例说明了 SOAP 编码和 XML 脚本校验之间的不同。Document/literal 通过文本文档来传递信息并基于 XML 脚本来校验和逆序列化对象的 XML 表示。不同于 Document/literal , RPC/encoded 模型使用 SOAP 编码规则来表述抽象 SOAP 数据模型,并依赖厂商的 SOAP 库来提供抽象数据模型的具体实现。它是高度平台独立的。它不需要中间的规范来填补空白,因此,这种方式对于不同厂商的实现是开放的。尽管 SOAP 是标准,由于缺少 XML 脚本支持,SOAP 实现(如 Application Developer V4 和 V5 的基于 DOM 的 Apache SOAP 库和基于 SAX 的 Apache AXIS 库、MS .NET 1.1 框架的 MS SOAP 工具包 )还是有细微不同。 利用 WS-I 一致性测试工具检测一致性 WS-I 基本规范为遵守 Web 服务规范来构建互操作的 Web 服务提供了指导。WS-I 工作组开发了 WS-I 一致性测试工具来帮助开发人员判断它们的 Web 服务是否遵循规范指南。WS-I 测试工具分析器可以产生一个规范一致性报告来记录您的 WSDL 文档的一致性声明。目前,测试工具的 C# 和 Java 版本都可以下载。通过运行测试工具,WS-I 基本规范 1.0 的大部分明显的冲突都会被报告。清单 4 中的 WSDL 文档的一致性检查测试的冲突如 清单 6 中所示。 清单 6. 从 WS-I 测试工具获取的失败报告 失败消息是自我解释的: soapbind:body、 soapbind:fault、 soapbind:header 或 soapbind:headerfault 中的 "use=encoded" 被认为是不遵守 WS-I 规范的。您应该使用 "use=literal" 来代替。由于毫无疑问要使用 Document/encoded,也就是说,您不应该使用 RPC/encod |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |