
掌握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
最新资源
- 深入浅出设计模式中文教程
- JAVA Bean运行时跟踪优化:自定义toString实现
- JAVA网络机器人编程实践指南及源码解析
- 国家标准下的软件设计文档撰写规范
- 游戏远程指令调用测试新工具发布
- ASP.NET网上书店系统开发与实践指南
- 云南大学软件学院实验项目:桌面复数计算器
- 2007年软考网络管理员试题及答案详解
- Struts、Hibernate与Spring框架的高效整合实例
- ECShop首页动态幻灯片插件(Myjs版)功能与使用
- 轻松实现Devexpress XtraTabControl双击关闭页面功能
- MATLAB实现足球场图像禁区检测技术详解
- 深入解析数据结构的详细指南
- 在VC++中实现带图标的气泡任务栏提示
- 推荐两款适用于Windows XP的虚拟光驱工具
- 掌握Win32多线程编程:完整代码解析
- 2009年全国电子设计大赛竞赛题目解析
- 利用CSS技术实现便捷网页图片下载的软件
- 纯DWR+JSP实现三级联动菜单教程
- ASP.NET入门:简化注册登录及Cookies应用教程
- 严蔚敏版数据结构C语言代码详解
- PB+SQL编写新手指南:仓库管理系统详解
- 力天电子LT-ARM214X例程更新版发布
- WinSock 1.1API实现网络通信程序示例