WEB开发网
开发学院软件开发Java 用 JAX-RPC 构建 RPC 服务和客户机(下) 阅读

用 JAX-RPC 构建 RPC 服务和客户机(下)

 2010-04-06 00:00:00 来源:WEB开发网   
核心提示: 清单 21 首先导入需要的所有类,这样就不必分散地添加这些类,用 JAX-RPC 构建 RPC 服务和客户机(下)(5),这个过程单调乏味而且容易产生错误,几个类与 URL 连接相关,然后,从这个实例创建 Call 的新实例,在连接 Web 服务时需要这些类,另外四个类(两个在 javax.xm

清单 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() 中的几行:

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:JAX RPC 构建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接