NetBeans创建、部署Axis2 Web 服务
一、前言
本文是依照Netbeans官网上《在 NetBeans IDE 中创建 Apache Axis2 Web 服务》一文创建基于Axis2的Web service的过程记录。
其中大部分内容与原文一致,但添加了一些细节,同时根据最新的Netbeans 7.0.1修改了部分已经不适应的内容。
二、Web service使用示例
在创建新的Web service之前,首先看下Axis2提供了一个Web service的例子。
点击“Services'”,可以看到Axis提供了Version服务。
点击“Version”,可以看到如下图所示:
分析上图中显示的文件,我们在浏览器中提交http://localhost:8080/axis2/services/Version/getVersion测试该服务:
可以看到,该Web service可以正常提供服务。
三、创建新的Web service
Netbeans中创建新的Web service并的过程如下:
1、下载 Apache Axis2 WAR 文件
可以至http://axis.apache.org/axis2/java/core/download.cgi 下载最新版本的Axis2。
由于在Tomcat中部署需要war格式文件,因此,我们下载war格式的即可
2、安装 Axis2 支持插件
由于我们是借助Axis2创建Web service,因此在创建之前,首先需要在Netbeans中安装Axis2插件。
在 IDE 中,进入“工具”菜单下的插件管理器,检查“已安装”标签下是否已经安装了 Axis2 Support 插件。如果已经安装,请检查“更新”
标签中是否有更新。对于Netbeans7以前的版本,如果未安装 Axis2 Support,请从“可用插件”标签中进行安装。而由于Netbeans7.0.1
中尚无官方发布的Axis2插件,因此我们在Netbeans官方下载6.8版本中的Axis2插件,
下载地址为:
http://updates.netbeans.org/netbeans/updates/6.8/uc/final/beta/modules/extra/org-netbeans-modules-websvc-axis2.nbm
下载完成后,我们在插件管理中从本地安装已经下载到本地的Axis2插件。依次点击“工具”->“插件”-->“已下载”-->“添加插件”,在
选择窗口中选中下载的插件后,点击“安装”即可完成安装。
安装完成后,我们可以在“工具”-->“选项”中看到Axis2:
3、部署Axis2
1) 将包含 axis2.war 的已下载归档文件解压缩到 Tomcat CATALINA_BASE/webapps 目录。
启动 IDE 并依次点击“工具”-->“服务”标签。在展开的“服务器”节点,右键单击 Tomcat 7.0.14..0 ,并选择“属性”。在“连接”
标签中可以看到“Catalina 基目录”位置。
2) 启动或重新启动 Tomcat 服务器。Tomcat 会将 axis2.war 文件解压缩到 CATALINA_BASE/webapps 中的 axis2 文件夹。
3) 从 IDE 中的顶部菜单栏中,选择“工具”>“选项”。此时将打开“选项”对话框。单击 Axis2 图标。将打开 Axis2 部署选项页。
将 Axis2 AAR 文件的目标位置设置 CATALINA_BASE(不是 TOMCAT_HOME)/webapps/axis2 目录。此次测试中为:
D:\Documents and Settings\XXXXX\.netbeans\7.0\apache-tomcat-7.0.14.0_base\webapps\axis2
至此,Axis2的部署完成。
4、创建Axis2 Web service
单击“新建项目”图标或者“文件”->“新建项目”。将打开“新建项目”向导。从 Java 类别下选择Java 类库项目。单击“下一步”。
将项目命名为 AxisHello。检查是否使用的是想要的项目文件夹名和位置。是否共享该项目取决于。单击“完成”,则 IDE 会创建项目。
右键单击项目节点,选择“新建”->“其他”。打开“新建文件”向导。从“Web 服务”类别下,选择“Axis2 Service from Java”
并单击“下一步”。
现在“新建文件”向导的“文件类型选择”页打开。项目中没有任何 Java 类,所以选择“Create Empty Web Service”。如果已经编
写了一个 Java 类代码,那么应该选择“从现有 Java 类创建 Web 服务”。
单击“下一步”。将打开“名称和位置”页。将该 Java 类命名为 HelloAxisWorld。将包命名为 axishello。让“生成样例方法”保持
选中。这会在 Java 类中生成一个返回 "Hello, World." 的方法。
单击“完成”。IDE 会在 axishello 源包中生成一个 HelloAxisWorld.java 类和反映此 Java 类的 HelloAxisWorld Axis2 Web 服务。
可以看到 Java 类和 Axis2 Web 服务都有一个 hello:String 操作,分别作为 Axis2 Web 服务的一个节点显示在“导航”标签中。
5、部署和测试Axis2 Web service
经过上面的步骤,一个简单的Axis2 Web service创建成功。下面将其部署到Tomcat上。右键单击 Web 服务的节点,选择“部署到
服务器”。
部署过程中,IDE 编译 Axis2 AAR 文件,并将其复制到应用程序服务器使用的 axis2目录下。如下图中的AxisHello.aar文件:
如果已经启用了自动部署,则该 Web 服务会部署到服务器。如果服务器没有运行,则启动或者重新启动Tomcat服务器,Web 服务会
自动部署。要测试该服务,请展开 Web 服务节点以显示操作。右键单击 "hello:String" 节点,选择“Test Operation in Browser”。
测试中可能会遇到报错如下:
其原因是由于Netbeans中的Tomcat默认服务端口为8084,而Web service部署的默认端口为8080。因此需要修改Tomcat的服务端口
和关闭端口分别为8080和8025以外的任意端口。(测试过程中出现了修改端口为8080后再修改为8084后,8080端口依然正常访问的情
况,干扰了对错误原因的判断,晕啊)
部署完成后,如果测试成功则会在打开的浏览器中看到如下页面:
http://localhost:8080/axis2/services/HelloAxisWorld/hello?name=XYZ
此时,在http://localhost:8080/axis2/services/listServices中,可以看到我们已经成功创建的HelloAxisWorld 服务:
6、更改 Web service的操作
要更改 Web 服务操作,请编辑项目中的 Java 文件。Web 服务中的操作会随之改变。将一个简单的 add 方法添加到 HelloAxisWorld.java,
如下所示:
public class HelloAxisWorld {
/** Sample method
*/
public String hello(String name) {
return "Hello "+name;
}
public int add(int x, int y) {
return x+y;
}
}
保存 Java 文件,再次按之前的操作测试即可。 在http://localhost:8080/axis2/services/listServices页面中可以看到服务中的2个方法: