用 JAX-RPC 构建 RPC 服务和客户机(下)
2010-04-06 00:00:00 来源:WEB开发网清单 21 首先导入需要的所有类。这样就不必分散地添加这些类,这个过程单调乏味而且容易产生错误。几个类与 URL 连接相关,在连接 Web 服务时需要这些类。另外四个类(两个在 javax.xml 中,两个在 org.apache.axis.client 中)与 RPC 相关。后面会详细讨论每个类。
清单 21 还包含一个常量,这是要连接的 Web 服务的 URL。如果您使用不同的主机名或端口,就需要修改这个 URL,使它与自己的 servlet 引擎和 BookSearcher Web 服务路径匹配。URL 可能类似于 http://dev.myDomain.com/apps/BookSearcher.jws。可以使用不同的 URL,只要在浏览器中输入这个 URL 时能够获得与 图 7 相似的响应即可。
接下来是一个空的构造函数和一个根据关键字进行搜索的方法。稍后将详细讨论这个方法,所以暂时不必讨论这个方法为什么返回 Object[] (一个对象数组)。但是,目前这个方法只返回 null,这样就可以编译这个类。这个方法包含大部分 RPC 客户机代码。
最后一段代码(类的 main() 方法)创建一个新对象,从命令行获取一个关键字,并把它发送给 search() 方法,这个方法进而向 Web 服务发出请求。然后,构建客户机代码,向 Web 服务发出请求。
创建一个 Service 和 Call 对象
JAX-RPC 客户机代码的两个基本对象是 org.apache.axis.client.Call 和 org.apache.axis.client.Service。这两个对象是 JAX-RPC javax.xml.rpc.Call 和 javax.xml.rpc.Service 类的实现。Apache Axis 提供了这些对象,其他 RPC 框架也提供自己的实现。
在任何 RPC 客户机中,第一步都是创建 Service 的新实例。然后,从这个实例创建 Call 的新实例,这样就可以调用服务了。清单 22 给出应该在 BookSearcherClient 类中添加的代码:几个新的成员变量和 search() 中的几行:
- ››构建Windows 8风格应用23-App Bar概述及使用规范
- ››构建域名服务器(DNS)
- ››构建Android平台Google Map应用
- ››构建WinForm 通用速选(全选、反选、清空)组件
- ››构建Wordpress网站首选的5家国外主机
- ››构建高性能和高弹性 WebSphere eXtreme Scale 应用...
- ››构建前端UI组件的新思路
- ››构建 Android 开发环境
- ››JAXP 全面介绍,第 1 部分:XML 处理工具包使解析...
- ››JAXP 全部内容,第 2 部分:使用 Sun 的 XML 处理...
- ››构建 pureXML 和 JSON 应用程序,第 3 部分: 为 p...
- ››构建 ESB 中介来将分隔文件转换为服务调用
更多精彩
赞助商链接