设计支持 WS-I 标准的 Web服务(二)

日期: 2007-12-13 作者:Parlione 来源:TechTarget中国

  数据传输对象

  数据传输对象(data transfer objects,DTOs)或值类型如 Lotus Domino Web 服务文档中介绍的那样,是用于在 Web 服务和客户机之间交换数据的自定义类。

  对于 Discussion 数据库,我们拥有以下一些 DTOs,如图 1 所示:

  Author 是一个表示作者配置文件的类。它包含了 author ID、author name、display name、email、phone number、body、goal、role、subject、categories、is-private、modified date、created date。
  Topic 是一个表示 Discussion 数据库中主题的类。它包含了 document ID、subject、body、categories、modified date、created date 和 mark-as-private 属性。body 不包含任何二进制(如 attachments)。
  Response 是一个表示 Discussion 数据库中主题的响应或响应的响应的类。它包含了 document ID、parent ID、subject、body、categories、modified date、created date 和 mark-as-private 属性。body 不包含任何二进制内容(如 attachments)。
  SortItem 是一个包含字段名和排序顺序对的类。SortCriteria 使用该类来确定由列表方法返回的主题、响应和作者的排序顺序。
  SortCriteria 是一个包含 SortItems 集合和 name 属性的类。列表方法使用该类来指定如何根据 SortItems 中的多个属性和顺序对主题、响应和作者排序。
  IDList 是一个用于 bulk 更新的类,它包含了一个 ID 列表和一个 type 属性,该属性的合法值为 topic、response 和 any。

  图 1. 数据传输对象

  错误

  Web 服务抛出一些自定义错误,其中的字段指定了以下内容:

  Error message,关于发生错误的详细信息。
  Error number,识别错误的代码。
  Line number,脚本中抛出错误的位置。
  Database name,使用数据库的名称。
  Function name,其中发生错误的函数名称。
  Web service name,发生错误的 Web 服务的名称。

  错误可以分类为以下几组:

  DiscussionError 提示正常使用 Web 服务期间产生的错误。
  IllegalArgumentError 在每次认为参数无效时抛出,例如,将 null 值作为参数传递给方法。
  UpdateError 在未成功更新一个或多个文档时由 bulk 更新方法抛出。抛出时它包含了一个未更新的(主题或响应)ID 列表。
  UpdateConflictError 在尝试使用更早的日期修改当前文档的 modified date 时抛出。

  兼容性

  Web 服务的设计目的是对 Lotus Domino V7.0.2 和 Lotus Domino V8 使用相同的接口,同时实现使用一个替代方案来完成本文 “实现” 一节所描述的源代码可移植性。

 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

作者

Parlione
Parlione

相关推荐

  • SAP收购CallidusCloud 与Salesforce竞争

    一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。