正 文

为Web服务创建Java客户端


www.7dspace.com  更新日期:2005-10-14 11:39:46  七度空间


  如何为支持会话并使用了复杂类型的Web服务编写Java客户端程序

  实现Web服务的主要前提条件是应该能够从任何其他计算机上用任一种语言编写程序来调用Web服务,只要客户端能够

  ·建立一个到Web服务主机的网络连接

  ·使用目标Web服务(通常是HTTP)支持的协议进行对话

  ·创建输出的XML消息并解释传入的XML消息

  为Web服务创建客户端的过程中用到的概念对所有语言来说都是通用的。这里的重点将放在基于WebLogic Workshop,明确讲述如何从Java客户端调用Web服务。

  BEA的WebLogic Platform提供了两种创建Web服务的方法:WebLogic Workshop和servicegen。WebLogic Workshop是为非J2EE专家准备的,它能帮助你很轻松地从头开始创建Web服务。而servicegen则是一个瞄准J2EE开发者的WebLogic Server工具,它能将现有的Enterprise Java Beans (EJB)用作Web服务。本文用到的用于说明客户端概念的Web服务示例是用WebLogic Workshop创建的,但原理是一样的,因为Web服务都遵循着一套标准。

  Web服务概念

  让我们从一个定义开始吧:Web服务是一种应用组件,要想对它进行操作可以通过合适的协议向它发送适当格式化过的XML消息。Web服务定义了操作(operation),还定义了能触发操作的消息的格式,操作正是在Web服务收到这些消息时触发的。这种格式可以是"原始的"XML,也可以是简单对象访问协议(SOAP)。SOAP规范为Web服务操作调用消息定义了特定的消息格式化规则。

  SOAP有一个细节你需要知道,因为它影响到了Web服务的互操作性。SOAP规范定义了两种对消息进行编码的方式。它们称为"document literal"(也叫"SOAP Section 5",编码正是在SOAP规范文档中的这一部分定义的)和SOAP-RPC(或者"SOAP Section 7")。document literal编码不是专门为远程过程调用准备的,它为文档定义了一种通用格式。SOAP-RPC编码则是直接瞄准了远程过程的调用。

  WebLogic Workshop Web服务默认情况下使用document literal编码方式。使用WebLogic Server的servicegen工具创建的Web服务使用SOAP-RPC。

  WSDL文件是调用Web服务的向导

  Web服务为客户端提供了一个向导,告诉客户端如何调用Web服务的操作。这个向导是在一个使用Web服务描述语言(Web Service Description Language,WSDL)格式的XML文件中提供的。如果Web服务提供者希望别人使用他的Web服务,他必须提供一个获取该Web服务的WSDL文件的方法。该文件除了描述Web服务使用的每个操作,还描述了你所发送的用于调用各个操作的消息的具体格式。WSDL还指定了该Web服务的网络地址。

  如果WSDL文件中包含了这些信息,那么客户端就有了调用Web服务的操作所需的全部信息。从概念上讲这一任务相当简单:

  1. 创建一个XML(通常是SOAP)消息。

  2. 按照Web服务期望的样式对操作参数进行编码。

  3. 向Web服务的URL发送消息。

  4. 等待响应消息

  5. 将响应消息的XML转换成可以被客户端代码理解的数据类型。

  从理论上说,这很简单,但实际上如果没有其他方面的帮助这将很复杂。这意味着为了编写出Web服务客户端,你需要:

  ·能在Web服务操作所需的任意复杂的Java类型和具体的XML或者SOAP编码方式这两者之间进行转换的代码,以及

  ·使用Web服务可以理解的协议(像HTTP)来建立网络连接的代码。

  第一种代码如果通用性足够好,能处理任意复杂的组合数据类型,那么将尤为复杂。

4页,页码:[1] [2] [3] [4] 

上一篇:Ajax技术:构建动态的Java应用程序
下一篇:Illustrator CS2实例图解:绘制八卦鱼
作者:John Methot  来源:dev2dev ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐