### Java WebService应用实例分析
#### 一、Axis2简介及安装
**Axis2**是一款功能强大的WebService引擎,它是对前一代产品Axis1.x进行了全面重构的结果。与之前的版本相比,Axis2支持SOAP 1.1和SOAP 1.2,并且集成了流行的RESTful WebService,同时兼容Spring框架和JSON等技术。这一改进使得Axis2成为开发现代Web服务的一个理想选择。
为了安装Axis2,首先需要从官方网站下载最新的版本:
- **axis2-1.4.1-bin.zip**: 包含了所有必要的JAR文件。
- **axis2-1.4.1-war.zip**: 用于将WebService部署到Web容器中。
假设你使用的是Tomcat 6.x版本,安装步骤如下:
1. 解压缩`axis2-1.4.1-war.zip`文件至指定目录。
2. 将解压后的`axis2.war`文件放置于Tomcat的`webapps`目录下。
3. 启动Tomcat服务器。
4. 通过浏览器访问`http://localhost:8080/axis2/`,如果一切正常,你会看到Axis2的欢迎页面。
#### 二、创建和发布WebService
传统上,基于Java的服务通常需要大量的配置工作,但在Axis2中,你可以轻松地将一个简单的POJO(Plain Old Java Object)转变为WebService,无需额外的配置文件。
**示例代码**:
```java
public class SimpleService {
public String getGreeting(String name) {
return "你好 " + name;
}
public int getPrice() {
return new java.util.Random().nextInt(1000);
}
}
```
这段代码定义了一个名为`SimpleService`的简单POJO,它有两个公共方法:`getGreeting`和`getPrice`。这两个方法都将作为WebService的方法发布出去。
**发布步骤**:
1. 编译`SimpleService`类。
2. 将生成的`SimpleService.class`文件放置于`<Tomcat安装目录>/webapps/axis2/WEB-INF/pojo`目录中。如果不存在`pojo`目录,则需要手动创建。
完成以上步骤后,`SimpleService`就已经成功发布为一个WebService。可以通过以下URL查看已发布的服务列表:
- `http://localhost:8080/axis2/services/listServices`
测试`getGreeting`和`getPrice`方法可以通过以下URL:
- `http://localhost:8080/axis2/services/SimpleService/getGreeting?name=bill`
- `http://localhost:8080/axis2/services/SimpleService/getPrice`
#### 三、注意事项
在使用Axis2发布WebService时,需要注意以下几点:
1. **包声明**:POJO类不应使用`package`关键字声明包。
2. **热发布**:默认情况下,Axis2支持热发布WebService。这意味着只需将`.class`文件复制到`pojo`目录中,Tomcat就能自动识别并发布新的WebService,无需重启服务器。若要关闭此功能,可以在`axis2.xml`配置文件中修改相应参数。
3. **热更新**:虽然支持热发布,但并不支持热更新。一旦发布了一个WebService,若想对其进行更新,仍然需要重启Tomcat。
通过本指南,你已经了解了如何使用Axis2快速开发和部署简单的WebService,以及如何通过不同的编程语言调用这些服务。这为后续更复杂的应用场景奠定了坚实的基础。