
掌握Java Axis调用WebService的三种方法

### 知识点详解
#### Java Axis 调用 Web Services
Web Services 是一种允许不同系统的应用程序之间通过网络(尤其是通过 Internet)进行交互的软件系统。Axis 是 Apache 组织提供的一个用于开发 Web Services 的工具包,它允许 Java 程序员快速部署和使用 Web Services。
#### 调用 Web Services 的三种方式
##### 1. 传递参数String,得到String
这是最简单的 Web Services 调用形式,通常用作演示或验证 Web Services 功能的基本通信。在该模式下,客户端发送一个字符串参数,服务器处理后返回一个字符串结果。
- **服务端实现:**
```java
public class WebServiceTest {
public String sayHello(String name){
return "Hello," + name;
}
}
```
在此例中,服务器端定义了一个 `sayHello` 方法,它接收一个字符串参数 `name`,并返回一个简单的问候语。
- **客户端调用:**
客户端需要使用 Axis 提供的工具生成对应的客户端存根(stub),然后通过这些存根代码创建服务对象并调用 `sayHello` 方法。
##### 2. 传递参数String,得到对象Users
当服务端需要返回更复杂的数据结构时,会使用对象作为返回类型。在这种方式下,客户端发送字符串参数,而服务端返回的是一个对象。
- **服务端实现:**
```java
public Users getUsers(String name){
Users us = new Users();
us.setUserName(name);
us.setUserPwd("123");
us.setUrl("url");
return us;
}
```
`getUsers` 方法接收一个字符串参数,并返回一个填充好的 `Users` 对象。`Users` 类需要序列化,以便能够在 Web Services 中传输。
##### 3. 传递对象Users,得到对象Users
在 Web Services 中,除了可以通过简单类型进行通信外,还可以通过复杂对象进行交互。这种方式下,客户端发送一个 `Users` 对象,服务端处理后返回一个 `Users` 对象。
- **服务端实现:**
```java
public Users getUsersFor(Users use){
Users us = new Users();
us.setUserName("zhangsan" + use.getUserName());
us.setUserPwd("123" + use.getUserPwd());
us.setUrl("url" + use.getUrl());
return us;
}
```
`getUsersFor` 方法接收一个 `Users` 对象,对其进行处理,并返回一个新的 `Users` 对象。这种模式展示了 Web Services 的灵活性,能够处理复杂的数据结构。
#### Axis 实现细节
- **Axis 的架构:**
Axis 是一个基于 SOAP 协议的 Web Services 引擎,它支持将 Java 对象转换为 XML 格式的 SOAP 消息,然后通过 HTTP 协议进行传输。Axis 也提供了开发工具如 WSDL2Java 和 Java2WSDL,用于生成服务端的骨架代码和服务描述语言(WSDL)文件。
- **Axis 的工作流程:**
1. **服务端发布:** 开发者需要使用 Axis 的工具生成 Web Services 服务的骨架代码和 WSDL。然后,这个服务就可以通过 Axis 的 Servlet 在 HTTP 上被调用。
2. **客户端调用:** 客户端同样需要 WSDL 文件来了解服务的接口信息,并使用 Axis 提供的工具生成客户端的存根代码。在运行时,客户端使用这些存根代码来调用远程 Web Services 上的方法。
- **Axis 版本和兼容性:**
文档中提到的 Axis 1.4 是 Axis 的一个版本,它是较早的 Axis 实现,虽然现在更多地推荐使用 Axis2,但许多遗留系统仍在使用 Axis 1.x。了解不同版本的 Axis 特性和迁移路径对于维护和开发相关系统非常关键。
#### Java 相关知识
- **序列化:**
在 Web Services 中,服务端和客户端交换的对象必须是可序列化的,即实现了 `Serializable` 接口。这样,对象才能通过网络传输,并在另一端重新构建。
- **服务端和客户端的通信:**
在 Web Services 模型中,服务端和客户端之间的通信通常基于请求/响应模型。服务端接收来自客户端的请求消息(SOAP 消息),处理后返回响应消息。
#### 实践经验
从提供的代码和服务描述来看,作者在实践中采用 Axis 来实现 Java 应用程序对 Web Services 的调用。这涉及到服务端的 Web Services 实现、WSDL 文件的生成以及客户端存根代码的使用。了解如何在实际项目中实现这些步骤对于完成本任务至关重要。
通过本项目的具体实践,可以进一步扩展到对 Axis 框架的深入了解,包括其配置、性能调优、安全性考虑等方面,以满足复杂业务场景下对 Web Services 的使用需求。
相关推荐










dangherenmin
- 粉丝: 0
最新资源
- 基数幻方排列算法实现及5阶3阶示例代码
- 初学者也能轻松制作ASP.NET留言本
- NTBOOTautofix v2.0.2:Win7与WinXP双系统启动修复解决方案
- WTL三本经典学习资料合集
- 华中科技大学电信系卢正新老师的随机过程课件
- C#企业级办公自动化OA系统源码下载
- 酷派E230 USB驱动程序下载与安装指南
- LEACH路由协议在WSN中的NS2仿真实现
- VC实现操作系统银行家算法避免死锁
- 探索Android开发:《Android in Action》实战指南
- ExtJS4 Beta3 示例程序深度解析
- 酷派E230A手机刷机USB驱动安装指南
- VC++实现ComboBox可自选颜色功能
- Eclipse插件spket-1.6.18功能特性与下载指南
- Linux基础教程:命令、配置与系统安装
- 揭秘房地产实战话术-户型解说技巧
- 图像分割技术全面解析:分水岭、金字塔及均值漂移算法
- 学习丝绸之路服装CAD软件的入门指南
- Hibernate基础教程:MyEclipse IDE集成与JUnit初探
- 基于Java技术实现的小型ATM机项目设计
- XP系统远程桌面实现多用户同时登录教程
- Notepad++中文版压缩包安装指南
- Willem编程器新版本发布:PCB50多功能编程支持
- Java新手友好拼图游戏教程