·天新网首页·加入收藏·设为首页·网站导航
数码笔记本手机摄像机相机MP3MP4GPS
硬件台式机网络服务器主板CPU硬盘显卡
办公投影打印传真
家电电视影院空调
游戏网游单机动漫
汽车新车购车试驾
下载驱动源码
学院开发设计
考试公务员高考考研
业界互联网通信探索
您现在的位置:天新网 > 软件开发 > Web开发 > Web服务器
Web服务互操作开发的十大要点
http://www.21tx.com 2005年07月07日 微软 Simon Guest

1 2 下一页

  在过去一段时间里,很多供应商纷纷以惊人的速度发布其Web服务的实现。这包括产品的主要版本、辅助版本和许多开发服务包。随着新版本越来越符合标准,不同供应商之间的互操作性越来越高。

  尽管如此,仍然需要在共同使用这些Web服务时的建议和策略。有些实践允许您确保以互操作的方式既使用又公开Web服务。基于已有的经验,我整理了关于Web服务互操作性的“十大”要点列表。有些要点基于在Microsoft上运行的测试结果的发现,另外一些是在开发项目时觉得有用。这里的提示可以应用于IBM、BEA及多个开放源码堆栈。我希望它们对您有用。下面从下往上依次介绍这些要点:

10. 当心空数组
  通过Web服务发送空数组可能产生问题。有些工具包将空数组识别为单个空值,而另外一些则将其表示为一组空数组元素。我的一般原则是,通过Web服务发送对象数组时,始终确保让数组包含有效数据。


9. 生成客户端代理时使用包和类型名称选项
  很多基于Java的工具有生成客户端代理时指定独特的包和类型名称的选项(例如,BEA WebLogic使用“clientgen”参数,IBM Rational Application Developer使用向导)。

  为共享同一数据嘈偷腤eb服务创建代理时,对包和类型名称的控制非常重要,例如在调用两个具有相同Order类型的Web服务时。


8. 测试生成的Java Bean是否为空
  使用工具或IDE从XSD文件生成Java Bean时,始终确保您知道如何执行测试操作以了解对象是否为空。您可能认为下面的代码可以完成这样的测试:

if (myObject == null)


  但是在某些情况下,您是在测试对象是否存在,而不是对象的值是否存在。我的建议是,始终在生成的bean上检查isNil()方法(或类似方法)。如果它存在,则可确保得到真值。


7. Java可以识别空的日期和时间值,但.net不能
  在Java中,java.util.Date和java.util.Calendar被分类为引用类型。在.NET Framework 1.1中,System.DateTime被视为值类型。

  这将会如何?引用类型可以为空,而值类型不能。如果要跨越Web服务发送空日期值,则始终以复杂类型发送值,并将复杂类型的值设置为空。这将有助于避免空的日期值被曲解(从而引发异常)。


6. 比较日期/时间时始终使用compareTo()
  如果通过Web服务在.NET和Java之间发送日期和时间,则始终使用Java中适当的compareTo()方法来比较日期。例如使用:

if (myDate.compareTo(yourDate) == 0)


  而不要使用:

if (myDate == yourDate)


  这将有助于确保平台间日期比较的准确性,尤其是试图比较毫秒值时。


上一篇: 突破IIS的客户端连接限制
下一篇: 网格与Web服务的结合

1 2 下一页

关于我们 | 联系我们 | 加入我们 | 广告服务 | 投诉意见 | 网站导航
Copyright © 2000-2011 21tx.com, All Rights Reserved.
晨新科技 版权所有 Created by TXSite.net