登录模块加载中...
会员投稿 投稿指南 今天是:
打印本页 | 关闭窗口 | 双击滚屏 您的位置首页>>网页制作学习园地>>NET教程>>WebService开发>>编写一个Web service客户端
编写一个Web service客户端
来源: ‖ 作者: ‖ 点击: ‖ 时间:12-09-26 11:52:22 ‖ 【 】‖ 我要投稿
【IT168 技术文档】

    Web service正在作为一种用于构建客户端-服务器应用程序的标准出现,而且您可以使用各种技术来编写它们,包括使用工具包。在各种工具包中,可用于Java的是Sun Microsystems编写的开源Axis 和JAX-RPC标准实现(参见
参考资料)。

  我们将集中描述一种用于编写Web service客户端的逐步式方法,该方法使用Sun的JAX-RPC标准实现(JAX-RPC SI)作为其Web service工具包。这个工具包是可靠的,能够生产部署在生成环境中的Web service,后者实质上是JAX-RPC标准的参考实现,而JAX-RPC规范受到了广泛的支持。例如,BEA和IBM都支持JAX-RPC,而且事实上,您可以把一个Sun实现生产的Web service部署到BEA WebLogic服务器中。另外,Sun的实现符合各种其他规范,比如WS-Security,这些规范正在变得越来越重要。您可以下载
用于构建一个Web service客户端的源代码

  要编写一个客户端,您需要一台服务器进行编程。可用的服务器有几种,比如Google或eBay,但是这里我们将使用Amazon的Web service。但是,仅仅知道我们想要使用的服务还不够。我知道Amazon有一个Web service,这个事实并不能让我随心所欲。我需要知道如何调用该Web service。它支持哪些操作?我应该传递哪些参数?我会获得什么返回值?

  这些问题说明,要编写一个Web service,必须存在针对该Web service的可用描述。除了客户端/服务器系统之外,服务器也有描述语言,例如,DCOM和CORBA均使用接口定义语言(Interface Definition Language,IDL)。DCOM和CORBA IDL并非同一种语言——也就是说,CORBA客户端无法使用DCOM服务器的IDL来描述对客户端可用的远程服务。

描述服务

  通过提供对Web service的描述,Web service描述语言代替了IDL在Web service中的位置。WSDL是一种机器可以使用的XML语法。代码生成器可以读取它。人类也可以读取它,但是它不是使用或者生产起来最容易的语言。我的一个同事Simon Horrell,他喜欢说下面这句话,“WSDL就像太阳。没有它你无法生存,但是如果您盯着它的时间过长,您就会变瞎!”

  Amazon提供一个Web service工具包,您可以从Amazon站点下载它。这个工具包提供针对Amazon Web service的文档,而且它还指定了用于描述Web service的WSDL文档的位置,您也可以在Amazon的站点上找到这些文档。当您打开这份WSDL文档时,如果它看起来十分复杂(它的确也十分复杂),不要过于担心,但是您要明白, 它多多少少提供了对Web service的完整描述。当不需要Amazon工具包时,您将需要一个开发人员令牌(同样可以下载)。Amazon使用这个令牌来跟踪Web service的使用,并检查是否有滥用服务的情况发生(参见
参考资料)。

  编写Web service时,您可以采用很多方法,但是这些方法大致可以分为两类。您可以使用所选择的工具包提供的工具来使用WSDL,并生产进行调用的客户端桩;或者您可以使用底层API来手动编写Web service。

  使用这两种方法时需要进行权衡。第一种方法(使用WSDL)相对较为容易,但是,它不是很灵活。许多可用的工具会为您做大量的工作。尽管工具易于使用,而且它们生成的代码也易于使用,您可能会发现,这些代码无法完成您想要的全部功能,而且它们的性能可能不够好。例如,您可能需要访问原始的HTTP通信,而生成的代码可能不会让您这样做。

  第二种方法较难,但是您可以获得更大的灵活性。从头开始编写代码可能很困难而且耗时,但是这样做最终会获得很好的灵活性和性能。可以通过不同的方式做到这一点:您可以使用Java java.net.URL及相关类,或者可以使用java.net.Socket进行低级工作。也可以使用HTTP API,比如Jakarta Commons项目提供的那些API(参见
参考资料)。通常,您会使用代码生
|<< << < 1 2 > >> >>|
加入收藏:  加入收藏夹  | 发送给好友:  发送给好友
责任编辑:admin
  • 上一篇:webservice学习笔记——入门篇
  • 下一篇:无
  • 相关文章列表
    请文明参与讨论,禁止漫骂攻击。  
    网友评论