IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope:Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    

developerWorks 中国  >  SOA and Web services  >

Web 服务开发技巧汇总

developerWorks


技巧汇总



熟能生巧,巧能生精。人们做任何事情都会总结出一定的技巧,掌握了它们就可以做到事半功倍。Web 服务作为新兴的技术,受到了无数开发者的关注,不断有新的开发者投入到 Web 服务开发的学习当中。为了让广大开发者能够快速地提高自己的能力,并共享一些开发过程中的最佳实践,本专区的作者为 Web 服务的开发人员总结出了很多有用的开发技巧,让开发者们从中能够学到很多一般书本上学不到的知识。

RSS


技巧汇总
  • 通过 JAX-RPC 来处理异常
    本文首先研究在没有 wsdl:fault 时的异常行为。然后它着重介绍了 wsdl:fault 如何被映射到已检查 Java 异常(checked Java exception)以及 JAX-RPC 运行时是如何处理这个已检查异常的。
  • JAX-RPC 与 JAX-WS 的比较
    JAX-WS 2.0 是 JAX-RPC 1.1 的后续版本。本文将引出对这两个 Java™ Web 服务编程模型进行比较的一系列文章。
  • JAX-RPC 与 JAX-WS 的比较,第 2 部分:了解数据映射中的差异
    本文对这两种 Web 服务规范的数据映射进行了比较。
  • JAX-RPC 与 JAX-WS 的比较,第 3 部分:服务端点接口
    本文比较了从 Web 服务描述语言 (WSDL) 到服务端点接口 (SEI) 的映射。SEI 的概念是在 JAX-RPC 1.0 中首次引入的,在 JAX-WS 2.0 中保留了这个概念,并且添加了一些新的内容。本文将向您介绍其中的主要区别。
  • JAX-RPC 与 JAX-WS 的比较,第 4 部分:动态调用接口
    本文将对动态调用模型进行比较。文中将给出每个模型的示例,以介绍其相似处和主要差异。
  • JAX-RPC 与 JAX-WS 的比较,第 5 部分:附件文件比较:Sw/A 与 MTOM
    本文将通过分析 Web 服务描述语言(Web Services Description Language,WSDL)和映射 Java 接口示例对这两个附件模型进行比较。
  • 在 JAX-RPC 应用程序中构建有状态会话
    学习如何利用 servlet 端点模型来扩展无状态 JAX-RPC Web 服务,并使用 HTTP 会话来构建有状态 Web 服务应用程序。我们用一个简单的购物车 Web 服务范例来加以说明。
  • 往返问题,引言:跨 JAX-RPC 维护数据完整性
    本文介绍了往返(roundtripping)、它的定义、以及它的使用。它首先指出一些与 JAX-RPC 规范有关的往返问题。随后的技巧将更详细地介绍其他的问题。
  • 往返问题:Java 编码惯例中的往返问题
    基于 XML 的远程过程调用的 Java API(Java APIs for XML-Based Remote Procedure Call,JAX-RPC)的 Java-to-WSDL/WSDL-to-Java 映射规则在往返过程中并不试图保留 Java 结构。很多结构被保留下来,但并不是全部。本文特别描述了为什么下面的 Java 编码惯例对于维持往返的能力非常重要。
  • 往返问题:映射元数据文件
    最后的往返方面的文章将向您展示如何使用映射元数据文件来处理往返问题,这个问题是我们在本系列开头的两个技巧中遇到的。
  • 如何创建一个简单的 JAX-RPC 处理程序:测量执行请求所用的时间
    本文通过一个示例向您演示了如何创建一个 JAX-RPC 处理程序的过程,同时向您讲解了如何解决在开发类似程序过程中遇到的问题。
  • 使用 JAX-RPC 来传递 SOAP 附件
    SOAP 消息传递协议使您能够通过 SOAP 消息来发送 MIME 附件。WSDL 提供了对这些附件的一种描述。JAX-RPC 提供了附件的 WSDL 描述到 Java 构件的映射。本技巧描述了如何使用这些 JAX-RPC 映射来发送 SOAP 消息中的附件。
  • 在 JAX-RPC 中使用 SOAP Headers:创建及处理在 SOAP 消息的 Header 部分传输的信息
    在本文中,Andre Tost 检验了用来创建及处理在 SOAP 消息的 Header 部分传输的数据的多种方法。尤其是他着重考虑了在使用 JAX-RPC 标准的应用程序中怎么做,因为绝大多数 Java 应用程序都是使用 JAX-RPC 标准提供并使用 Web 服务的。
  • 使用 SOAP 头扩展 JAX-RPC Web 服务
    在本文中,作者研究了 JAX-RPC SOAP 处理程序如何处理 SOAP 消息头。具体来说,他展示了处理程序如何将 SOAP 头添加到传出消息,以及对应的处理程序如何从传入消息中删除 SOAP 头。此外,他还提出了 JAX-RPC 的程序化配置和部署模型,因为它们都与这个主题有关。
  • 协同使用集合与 SOAP 和 JAX-RPC
    本文介绍了几种技术,您可以使用这些技术构建可互操作 Web 服务来提取和返回对象集合。本文是涵盖这个主题的一系列文章的第一篇。后续的文章将会讨论更详细的情况。
  • 将 <xsd:any/> 元素用于自定义序列化
    如果您要处理应用程序中的 Java 对象,您不必担心数据的类型映射以及序列化和反序列化。也就是说,您不需要知道如何解析 XML 元素,如何将它交给适当的 Java 对象,反之亦然。然而,在某些情况下,您可能想掌握(反)序列化是如何实现的。或者您根本就不想将 XML 数据映射到 Java 对象中去。幸运的是,在 JAX-RPC 中就有办法能做到,本文将为您展示如何去做的技巧。
  • 用 SAAJ 和 JAX-RPC 构建 SOAP 响应信封
    本技巧是对上一篇技巧——“将 <xsd:any/> 元素用于自定义序列化”的深入探究,它描述了如何使用 <xsd:any/> 元素自定义序列化。由于上一篇技巧着重于读取和处理 javax.xml.soap.SOAPElement,所以在这里作者描述了如何创建它。
  • 实现隐式和显式 SOAP 消息头
    用户可以使用通常称为显式和隐式消息头在 WSDL 定义中定义 SOAP 消息头。本文学习这两种样式之间的区别以及在使用 JAX-RPC 进行开发时这些区别是如何影响您的。
  • 手工创建的 SOAP 消息中命名空间的处理
    深入理解 WSDL 如何映射到 SOAP。在一般环境下,无须考虑 SOAP 消息中的命名空间。然而,在某些情况下,就必须要考虑这个问题。您可能需要手工创建 SOAP 消息,并在没有其它工具辅助下处理命名空间的问题。本文将专门针对这些情况来解决相关问题。
  • 学习简单实用的 Web 服务设计模式,第 1 部分
    本系列文章将带领您学习如何在 Web 服务中应用设计良好、经过检验的 Web 应用程序设计方法。第一个技巧将教您怎样通过 Java 消息服务(JMS)来实现异步请求操作。
  • 学习简单实用的 Web 服务设计模式,第 2 部分:用 Command Facade 模式封装业务逻辑
    这一系列的第 2 部分通过对 Command Facade Pattern 作介绍性的描述来继续对 Web 服务领域的应用程序展开讨论,这些应用程序定义完善并符合经过检验的 Web 应用程序设计策略。
  • 学习简单实用的 Web 服务设计模式,第 3 部分:用 Router 模式创建灵活的 Web 服务
    本文继续介绍简短系列中的第 3 个技巧,通过尝试使用 Router 模式将已明确定义好并验证过的 Web 应用程序设计策略用于整个 Web 服务。
  • 学习简单实用的 Web 服务设计模式,第 4 部分:理解并实现消息总线模式
    在这部分中,将探究消息总线模式(message bus pattern),该模式将异步性、灵活性及基于人们所熟悉的且提供设计概念的面向消息服务的实现连接在一起。
  • 提高 J2EE 技术和 .NET 之间的互操作性,第 1 部分
    本文着重强调了 WSDL 设计的重要性,并分析了 Web 服务集成中传统的 RPC/encoded 方式的优缺点。
  • 提高 J2EE 技术和 .NET 之间的互操作性,第 2 部分
    本文探索了对于公共的互操作性的需求来源,该需求面向跨平台的 Web 服务集成。跟随 Wangming Ye 分析互操作的失败原因——使用某些数据类型,以及克服错误的方法(如使用集合、数组或原始数据类型)。
  • 提高 J2EE 技术和 .NET 之间的互操作性,第 3 部分
    描本文述了 J2EE 技术与 .NET 之间可以导致 Web 服务互操作性困难的不同的命名约定。
  • 提高 J2EE 技术和 .NET 之间的互操作性,第 4 部分:使用 BPEL 和 WebSphere Business Integration Server Foundation 在业务流程中融合 J2EE 和 .NET 技术
    本文旨在展示如何通过自顶向下的方法(WSDL(Web 服务描述语言)实现)来解决 .NET 和 J2EE 之间 Web 服务互操作性的常见难题,例如嵌套复杂类型数组、日期和时间值还有命名空间问题。
  • 对 Web 服务进行压力测试
    Web 服务处于分布式计算的核心位置,它们之间的交互通常很难测试。分布式开发、大型的开发者团队以及对代码日益组件化的期望都有可能使 Web 服务的开发变得越来越容易隐藏错误。这些类型的错误极难检测出来。压力测试是检测这类代码错误的一种有效方法,但是只有在压力系统设计得比较有效的情况下才能发挥作用。本文将让您深入了解一下这种压力系统的基本要求。
  • 设计可重用的 WSDL 错误定义
    我们都赞同定义 Web 服务描述语言 (WSDL) 错误定义是较好的做法(如果您不同意,则不需要阅读本文)。存在许多定义 WSDL 错误的方法,但是只有有限的内容提到了重用。本文向您介绍可重用的 WSDL 错误定义模板、展示如何重用该模板,同时指出了一些应该注意的事项。
  • WSDL 文件导入
    本技巧阐明了 Web 服务描述语言(Web Services Description Language,WSDL)文件中两种类型的导入语句之间的细微差别。
  • 使用异步 Bean 提高 Web 服务性能
    想要提高 Web 服务的性能吗?试试异步 Bean。本文将说明 Web 服务如何访问来自各种资源的内容,以按顺序执行业务操作,还将说明异步 Bean 将如何对其进行促进。
  • 不使用附件形式来发送二进制数据
    在这篇文章中,我们介绍了最简单的一种方法技巧:使用 xsd:hexBinary 来插入二进制数据到 SOAP 消息中。我们使用 xsd:hexBinary 封装了一个服务,在这个服务中我们把 java.awt.Image 转换为了字节数据放到 SOAP 消息中。
  • XML Schema 中空值的表示
    本文介绍了三种在 XML Schema 中表示空字段的方法:可选的属性、minOccurs="0" 元素和 nillable="true" 元素。
  • 在 UDDI 注册中心为 Web 服务注册开发 UDDI Java 应用程序
    本文建立了一个使用统一描述、发现和集成 (Universal Description, Discovery, and Integration,UDDI) 来注册应用程序级消费的 Web 服务实例。作者提供了详细的代码示例以及基于 Java 的统一描述、发现和集成 (Universal Description, Discovery,and Integration for Java,UDDI4J) API 的扩展 API,通过这些可以使您使用 UDDI 来进行您自己的开发。
  • 使用 WS-I 的 wsi:swaRef XML 类型的附件
    本文介绍如何使用 Web 服务互操作性组织 (Web Services Interoperability Organization) 定义的 XML 附件类型:wsi:swaRef。
  • xsd:any 幕后故事
    在本文中将重点讨论 JAX-RPC Java™ 语言绑定。
  • 将多态性作为 xsd:choice 的备选方法
    xsd:choice 并非总是最佳的 XML 模式构造。例如,包含 xsd:choice 的类型不能使用 JAX-RPC 代码生成器映射到用户友好的 Java™ 类。在本文中,您将学习 xsd:choice 的一个功能等效项:多态性。


回页首


文档选项

未显示需要 JavaScript 的文档选项



  联系我们
在线投稿
— 与大家分享您的经验和收获!
反馈意见
— 告诉我们您的想法和建议!

  特别推荐
SOA 案例研究系列
SOA 快速指南 123
Web 服务提示与技巧
IBM 内的 SOA 应用


    关于 IBM 隐私条约 联系 IBM 使用条款