快速业务通道

提高J2EE与.NET之间的互操作性,第2部分 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
精度。

无论数据类型是数值类型还是引用类型,信息传递的一方都可能出现问题。数值类型的对象位于栈中,但是引用类型的对象位于堆中。这意味着引用类型可能有空指针,但是数值类型不能有空值。如果 XSD 类型在一种语言中被映射成了数值类型,而在另一种语言中被映射成了引用类型,那么这可能导致问题的出现。例如 xsd:dateTime 被映射成了 System.DateTime,这是 C# 中的数值类型。它也被映射成了 java.util.Calendar,这是 Java 中的引用类型。事实上,java.util.Date 和 java.util.Calendar 都是引用类型。在 Java 中,当引用类型没有引用任何对象时将其赋空值,这是公共的操作。然而,如果 .NET Web 服务从 Java 客户端接收到数值类型为空值的数据时,将抛出 System.FormatException。为了避免这个问题的出现,您可以定义复合类型来封装数值类型,并将这个复合类型置为空来表示空引用。

结束语

在本文中,您可以看到由于使用某些数据类型而产生的一些互操作性的问题。为了在使用数据类型时能够达到更好的互操作性,一般的规则是:

尽量多地使用简单数据类型。完全避免使用那些异样的复合类型,如 ArrayList、Tree,甚至公共的 Hashtable。

即使简单的数组通常都具有非常好的同 Web 服务的交互性,注意数组中的内容,确保数组中的元素在每个平台上的含义都是相同的,并且避免发出含有空元素的数组。

注意每个平台都是如何实现一些本地原始类型的,如 float、double 和 dates 和 times。

在该系列文章中的下一部分,我将研究在 Web 服务互操作性上的命名空间所产生的影响。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号