快速业务通道

用JAX-RPC构建RPC服务和客户机:使用Java API构建基于RPC的Web服务(一) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

对于 BookSearcher,这意味着可以把 BookSearcher 类放在某处的一台 Web 服务器上,然后在本地 机器上运行使用这个类的程序。尽管肯定有一些与 RPC 相关的活动,尤其是在客户机上,但是您的程序 可以像任何其他两个类一样进行交互。可以调用一个方法,向它发送参数,然后获取响应。

为什么不是远程方法 调用?

RPC 技术早在 C# 和 Java 等面向对象语言成为主流之前就出现了。实际上,RPC 原来是为 C 应用程 序开发的,主要也用在这种应用程序中;在这种应用程序中,函数是公开行为的主要方法。当 RPC 服务 出现在 Java、C++ 和 C# 程序中时,因为许多开发人员熟悉 RPC 的概念,使用 RPC 这个词更有意义, 所以没有采用远程方法调用(RMC)这样的新词汇。

因此,在 RPC 环境中,可以认为函数 和方法 是相似,不需要关注这两个词的语义差异。

服务器端类是 RPC 中的服务

现在,有了一个类(BookSearcher),它将放在服务器端。目前它只是一个一般的 Java 类,但是如 果可以通过 RPC 访问其中的一些方法,这个类就成了一个服务。它向客户机提供可以调用的函数(方法 )。进行调用的代码被称为客户机 或调用者。

让方法可供远程调用使用就是公开了 这个方法。所以,必须选择要通过 RPC 公开 哪些方法。可以公 开一个方法、所有方法或一部分方法。客户机可以调用公开的方法,而且只能调用公开的方法。把类转换 为服务,然后公开服务的一些方法,这个过程称为发布 服务。所以我们要公开一个发布的服务的一些方 法。

但是我只有一台机器!

即使无法访问 Web 服务器,也可以继续学习本教程。在通过 Axis 以服务形式公开一个类之后,需要 通过网络调用访问这个类。但是,也可以在本地机器上运行另一个类来访问这个服务,这是一种不错的测 试用例,而且您不会错过任何步骤。网络调用会被路由回您自己的机器,不需要经过因特网;即使如此, 这仍然是网络调用,这就够了。即使您没有另一台机器,在本地机器上运行所有代码也是一样的。

当然,如果能够 把服务类放在另一台运行 servlet 引擎的机器,就能够在完全成熟的远程环境中看 到 RPC 的效果。还可以体验到发出请求和接收响应所需的时间(这些时间与建立网络连接所需的时间相 比可以忽略不计)。还会体验真正的 RPC 环境。

用 Java Web Service(JWS)发布服务

在客户机上,需要做一些工作来连接到启用 RPC 的服务。但是,实际部署服务是很繁琐的。因为需要 维护每个 RPC 包或工具集(比如 Axis)的与工具集相关的细节。不需要学习在 JAX-RPC 上构建的 API ,只需利用工具集来公开服务。

把 .java 文件复制到 .jws 文件中

在使用 Axis 时,发布服务最简便最快速的方法是使用 JWS 文件。只需把 Java 源代码文件(扩展名 为 .java)复制到一个扩展名为 .jws 的同名文件中。然后,把这个 .jws 文件放在 Axis Web 应用程序 中,这个应用程序应该在 servlet 引擎的 webapps/axis 目录中。所以要想发布 BookSearcher,应该执 行清单 9 所示的命令:

清单 9. 把 Java 类转换为 JWS 文件

 [bdm0509:/usr/local/java/apache-tomcat-6.0.16]    cp ~/Documents/developerworks/jax-rpc/BookSearcher.java  webapps/axis/BookSearcher.jws

这种做法看起来相当古怪;修改文件的扩展名通常不是好做法。但是,这正是 Axis 所需要的。当 Axis Web 应用程序在它的目录中 “看到” .jws 文件时,它会把这个文件编译为 Java Web 服务,并构 建所需的所有 SOAP 访问代码,让客户机可以访问这个类。Axis 甚至会马上部署这个服务。

用JAX-RPC构建RPC服务和客户机:使用Java API构建基于RPC的Web服务(一)(14)

时间:2011-08-02 IBM Brett McLaughlin

通过 Web 浏览器访问服务

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号