开始之前
本教程讲解 Apache Axis 的高级特性及其 JAX-RPC 功能。您将学习如何从 Web 服务描述语言(Web Services Description Language,WSDL)文件自动生成客户机程序,从而简化 JAX-RPC 服务的使用过程。还要学习如何对部署的 Web 服务施加限制,比如限制其他用户可以使用的方法和参数。在此过程中,您将更深入透彻地了解 Apache Axis 及其配置、发送和接收 JAX-RPC 请求和响应的方式。
大多数基于 Java™ 的 Web 服务最初是独立的 Java 类。然后,把这些类转换为 Web 服务,转换过程往往很简单,只需把它们放到一个 Web 服务工具集的自动部署目录中即可。但是,在许多情况下,把 Java 类中的每个方法都作为 Web 服务公开是不合适的。但是,大多数 Web 服务工具集在默认情况下就是这么做的:让所有人都可以使用 Java 类中的每个公共方法。本教程将讲解如何指定应该公开和不应该公开的方法,以及如何适当地决定哪些方法 应该公开。
WSDL 是 Web 服务的通用语言。但是,WSDL 非常繁琐,其中包含许多不好理解的信息,处理起来很麻烦。幸运的是,Apache Axis 等 Web 服务工具集可以向一个命令行程序或 Java 进程提供一个 WSDL 文件,并自动生成一组基本上完善的类,这大大简化了客户机开发。您将学习如何使用 Axis 的代码生成实用程序以及需要对生成的代码做哪些修改。
您还将:
- 熟悉 Axis 提供的各种命令行代码生成工具
- 学习如何构建 Web 服务,禁止对私有和公共方法进行 Web 访问
- 了解哪些常见的 Java 类不适合转换为 Web 服务
本教程是 “用 JAX-RPC 构建 RPC 服务和客户机” 的续篇。强烈建议 完全不熟悉 JAX-RPC 编程的读者先阅读那个教程,然后再阅读本教程。无论您是否具备 JAX-RPC 经验,如果先阅读前面的教程,就更容易理解本教程。
本教程是为 Java 程序员编写的。您应该熟悉 Java 应用程序开发,熟悉如何使用标准的和第三方的 Java API 和工具集。您应该熟悉如何编写简单的 Web 服务和使用它们的客户机。还应该部署过至少一个 Web 服务(通过把 Java 类放到 Apache Axis 的 webapps/axis 目录中)。这个自动部署特性是本文中许多高级特性的基础,所以熟悉这种部署机制是很重要的。
基本了解 WSDL 会有帮助,但不是必需的。实际上,通过使用本文介绍的代码自动生成技术,可以避免处理 WSDL 的许多细节。
还需要一个能够驻留服务器端 Java 应用程序(servlet)的 Web 服务器。可以使用任何支持 Java 的 Web servlet 容器、应用服务器或提供商提供的驻留服务。最流行的解决方案之一是 Apache Tomcat,这种产品是免费的,而且有良好的文档。由您自己决定是在(您公司或 ISP 的)远程服务器上测试程序,还是在本地机器上测试。只需在一台可访问的机器上安装和运行服务器即可。
应该在 servlet 引擎/Web 服务器上安装和配置 Apache Axis。如果不了解如何运行 Apache Axis,应该参考 “用 JAX-RPC 构建 RPC 服务和客户机”。