corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

在 NetBeans IDE 中创建 Apache Axis2 Web 服务

本教程向您展示了如何通过一个 Java 类创建并部署 Apache Axis2 Web 服务。您也可以学习如何设置与 NetBeans IDE 绑定的 Tomcat 和 GlassFish 服务器,以部署 Axis2 Web 服务。本教程还展示了如何在 IDE 中配置 Axis2 选项,以便 IDE 正确部署 Axis2 Web 服务。

Apache Axis 是向 W3C 提交的 SOAP(imple Object-Access Protocol,简单对象访问协议)实现。Apache Axis2 是一种更加高效、模块化和面向 XML 的 Axis。Axis2 不仅支持 SOAP 1.1 和 SOAP 1.2,它还集成了对 REST 风格的 Web 服务的支持。同一业务逻辑实现可以同时提供一个 WS-* 样式的类型接口以及一个 REST/POX 样式的接口。有关 Axis2 的详细信息,请参阅 Apache.org 网站

Axis2 Web 服务可与 Metro 进行互操作。您可以为 Axis2 Web 服务创建一个 JAX-WS 客户机,但是可能不支持一些更加复杂的 Axis2 WSDL 操作。

目录

本页中的内容适用于 NetBeans IDE 6.1

要学习本教程,您需要使用以下技术和资源。

软件或资源 所需版本
NetBeans IDE 版本 6.1
Java Developer Kit(JDK) 版本 6
版本 5
Apache Axis 2 版本 1.3 或更高版本
Apache Ant,安装并
添加到您的路径
最新版本
Java EE 兼容的 Web 或应用服务器 Tomcat Web server 6.0 和/或
GlassFish 应用服务器 v2

Tomcat 和 GlassFish 都可以与 NetBeans IDE 的 Web & Java EE 发行版一起安装。或者,您可以访问 GlassFish 下载页面Apache Tomcat 下载页面

本教程也需要 Axis2 Support 插件。在 IDE 中,进入“工具”菜单下的插件管理器,检查“已安装”选项卡下是否已经安装了 Axis2 Support 插件。如果没有安装,可以从“可用插件”选项卡安装,如下所示:

显示 Axis2 Support 插件的插件管理器屏幕截图

安装 Apache Axis2 和 Apache Ant

Apache Axis2 和 Apache Ant 都以归档文件的形式下载。Axis2 可以从这里下载,而 Ant 可以从这里下载。要安装这些程序,将下载的归档文件解压到您选择的位置。现在安装目录将分别用 AXIS2_HOME 和 ANT_HOME 表示。安装 Ant 后,将在您的类路径中添加指向 ANT_HOME/bin 目录的路径。

创建和复制 Axis2 WAR 文件

为了便于您将 Axis2 Web 服务部署到应用服务器,服务器需要一个 axis2.war (Web ARchive) 文件的副本。您可以通过运行 Axis2 安装目录中的 Apache Ant 来创建一个 axis2.war 文件。创建 axis2.war 后,将其复制到 Tomcat 基和 GlassFish。

要创建和复制 Axis2 WAR 文件,请执行以下操作:

  1. 导航到 AXIS2_HOME/Webapp。在此目录打开命令提示符并运行 ant 命令。Ant 根据 AXIS2_HOME/Webapp/build.xml 文件创建 AXIS2_HOME/dist/axis2.war。类路径上需要有 ANT_HOME/bin
  2. AXIS2_HOME/dist/axis2.war 复制到 Tomcat CATALINA_BASE/Webapps 目录。如果您不知道您的 CATALINA_BASE 在什么地方,请启动 IDE 并打开“服务”选项卡。展开“服务器”节点。右键单击 Tomcat 6.0 节点,并从上下文菜单中选择“属性”。在“连接”选项卡中可以看见“Catalina 基”的位置。
    显示 Catalina 基位置的 Tomcat 属性屏幕
  3. AXIS2_HOME/dist/axis2.war 复制到 GLASSFISH_HOME/domains/DOMAIN_NAME/autodeploy。要找到 GLASSFISH_HOME 以及域名称,请启动 IDE 并打开“服务”选项卡。展开“服务器”节点。右键单击 GlassFish V2 节点,并从上下文菜单中选择“属性”。在“连接”选项卡中可以看到域文件夹位置和域名。例如,从下图中,您可以知道如何将 axis2.war 复制到 C:\Program Files\glassfish-v2ur1\domains\domain1\autodeploy
    显示 GlassFish 域目录和域名路径的 GlassFish 属性页面

设置 Tomcat 的 Axis2 选项

Axis 服务在 Tomcat 上比在 GlassFish 上运行得快,但是设置略微复杂一些。通过将服务部署到一个服务器,然后更改 Axis2 选项,最后部署到另一个服务器,您可以轻松将同一个服务部署到 Tomcat 和 GlassFish。

如果您想要部署到 GlassFish 而不是 Tomcat,请转至设置 GlassFish 的 Axis2 选项

要设置 Tomcat 的 Axis2 选项,请执行以下操作:

  1. 启动 IDE。从顶部的菜单栏选择“工具”->“选项”。此时将打开“选项”对话框。
  2. 单击 Axis2 图标。则打开 Axis2 部署选项页面。
    为 Tomcat 设置的 Axis2 选项页面
  3. 将 Axis2 AAR 文件的目标位置设置为您的 CATALINA_BASE(不是 TOMCAT_HOMEWebapps/axis 目录。您可以从 Tomcat 服务器属性中找到 CATALINA_BASE 的位置,正如创建和复制 Axis2 WAR 文件中所述。

  4. 确保 Axis2 URL 字段包含正确的 Tomcat 服务器端口号。要检查端口号,请启动 Tomcat(“服务”选项卡或者“工具”->“服务器”),查看 Coyote HTTP/1.1 使用的哪个端口。
    显示 Coyote HTTP 端口号的 Tomcat 输出
  5. 为了方便起见,选择“使用 Tomcat 管理器进行部署”。此功能表示 IDE 将在后台启动 Tomcat 管理器,并且在您每次更改 axis2.war 时,对 axis2.war 运行 reload 命令。如果您未选择“使用 Tomcat 管理器进行部署”,则每次您更改 axis2.war 后,您将不得不手动运行 Tomcat 管理器或使用其他 Tomcat 工具来重新加载。

    默认的 Tomcat 管理器用户名为“tomcat”,默认密码也是“tomcat”。要复核 Tomcat 管理器已部署并且拥有默认管理员角色名称和密码,请打开 CATALINA_BASE/conf/tomcat-users.xml。应该定义管理员角色,并且应该给它分配用户名和密码,如在以下文件版本中一样。(如果必要的话,您可以复制并粘贴此文件。)

    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
    <role rolename="manager"/>
    <role rolename="admin"/>
    <user username="tomcat" password="tomcat" roles="manager,admin"/>
    <user username="ide" password="YENnS8UT" roles="manager,admin"/>
    </tomcat-users>
     

设置 GlassFish 的 Axis2 选项

尽管 Tomcat 快得多,您可以将 Axis2 Web 服务部署到 GlassFish 应用服务器。通过将服务部署到一个服务器,然后更改 Axis2 选项,最后部署到另一个服务器,您可以轻松将同一个服务部署到 Tomcat 和 GlassFish。

如果您想要部署到 Tomcat 而不是 GlassFish,请转至设置 Tomcat 的 Axis2 选项

要设置 Glassfish 的 Axis2 选项,请执行以下操作:

  1. 启动 IDE。从顶部的菜单栏选择“工具”->“选项”。此时将打开“选项”对话框。
  2. 单击 Axis2 图标。则打开 Axis2 部署选项页面。
    为 GlassFish 设置的 Axis2 选项页面
  3. 将 Axis2 AAR 文件的目标位置设置到您的 GLASSFISH_HOME/domains/DOMAIN_NAME/autodeploy 目录。您可以从 GlassFish 服务器属性中找到 GLASSFISH_HOME 的位置以及域名,如创建和复制 Axis2 WAR 文件中所述。

    注意:通过将 axis2.war 放置在 autodeploy 目录中,可以使 GlassFish 在每次修改 axis2.war 后重新部署它。

  4. 确保 Axis2 URL 字段包含正确的 GlassFish 服务器端口号。要检查端口号,请启动 GlassFish(“服务”选项卡或者“工具”->“服务器”),查看 HTTP/1.1 使用哪个 80xx 端口。下图中正确的端口号为 8081:
    显示 HTTP 端口号 8081 的 GlassFish 服务器输出

注意:如果您使用的是 Windows Vista,将 GlassFish 安装到了 Program Files,并启用了“用户访问控制”(User Access Control,UAC),您将无法从 IDE 中更改 axis2.war 文件。将 GlassFish 安装到其他位置或者禁用 UAC。

创建 Axis2 Web 服务

借助 NetBeans IDE,您可以从一个 Java 类创建 Axis2 Web 服务。这只能从 Java 应用程序或 Java 库项目实现。在本教程中,您将创建一个 Java 库项目(因为您不需要主方法),在该项目中创建一个 Axis2 Web 服务(同时创建 Java 类),并将该 Axis2 Web 服务部署到服务器。

要创建并部署 Axis2 Web 服务,请执行以下操作:

  1. 单击“新建项目”图标或者“文件”->“新建项目”。此时将打开“新建项目”向导。从 Java 类别下选择一个 Java 类库项目。单击“下一步”按钮。
  2. 将项目命名为 AxisHello。检查是否使用的是您想要的项目文件夹名和位置。是否共享该项目取决于您。单击“完成”,则 IDE 会创建项目。
  3. 右键单击项目节点。打开上下文菜单。在上下文菜单中,选择“新建”->“其他”。此时将打开“新建文件”向导。从“Web 服务”类别下,选择“来自 Java 的 Axis2 服务”并单击“下一步”。
    在“新建文件”向导中选择从 Java 创建一个 Axis2 服务
  4. 现在“新建文件”向导的“服务类型选择”页面打开。项目中没有任何 Java 类,所以选择“创建空 Web 服务”。如果已经编写了一个 Java 类代码,那么您应该选择“从现有 Java 类创建 Web 服务”。如果您想要编辑 Web 服务的 WSDL,例如添加或更改名称空间,您应该选择“从 Java 源代码生成 WSDL”。编辑 WSDL 不在本教程的范围之内,所以不要选该选项。向导应该如下图所示:
    设置以创建空白 Web 服务的“服务类型选择”页面
  5. 单击“下一步”按钮。此时将打开“名称和位置”页面。将该 Java 类命名为 HelloAxisWorld。将包命名为 axishello。让“生成样例方法”保持选中。这会在 Java 类中生成一个返回“Hello, World.”的方法。
  6. 单击“完成”按钮。IDE 会在 axishello 源包中生成一个 HelloAxisWorld.java 类和反映此 Java 类的 HelloAxisWorld Axis2 Web 服务。您可以看到该 Java 类和 Axis2 Web 服务都有一个 hello:String 操作,分别作为 Axis2 Web 服务的一个节点显示在“导航程序”选项卡中。
    显示相应的 Axis2 Web 服务和 Java 类操作的“导航程序”和“项目”选项卡

部署和测试 Axis2 Web 服务

创建 Axis2 Web 服务后,您需要将其部署到服务器。实际上,部署到服务器包括两个步骤:

  1. 将 Axis Web 服务复制到服务器使用的 axis2.war 文件。这一步在服务器离线时也可以完成。
  2. 将最新的 axis2.war 文件重新部署到服务器。

如果您在启用“使用 Tomcat Manager 进行部署”选项的情况下部署到 Tomcat(请参阅 设置 Tomcat 的 Axis2 选项),或者部署到 GlassFish 且 axis2.war 位于 GLASSFISH_DOMAIN/autodeploy 文件夹(请参阅 设置 GlassFish 的 Axis2 选项),则最新的 axis2.war 会自动重新部署到服务器。否则,您必须使用应用程序服务器工具手动重新部署 axis2.war。在本教程中,我们假设您已经设置了 Axis2 选项,这样重新部署可自动进行。

要重新将 Axis2 Web 服务部署到服务器,请执行以下操作:

  1. 右键单击 Web 服务的节点。则打开上下文菜单。选择“部署到服务器”。IDE 编译 Axis2 AAR 文件,并将其复制到应用程序服务器使用的 axis2.war 文件。
  2. 如果您已经启用了自动部署,则该 Web 服务会部署到服务器。如果服务器没有运行,则启动服务器,Web 服务会自动部署。
  3. 要测试该服务,请展开 Web 服务节点以显示操作。右键单击 hello:String 节点,选择“在浏览器中测试操作”。
    显示选项“在浏览器中测试操作”的“操作”子节点上下文菜单
  4. 则浏览器打开,显示一个您的变量的测试值。该测试值附加在 URL 的后面。
    显示操作测试结果和附加到 URL 的测试值的浏览器窗口
  5. 更改 URL 中的变量值并按下回车键。则测试结果也会改变。
    显示操作测试结果和修改值的浏览器窗口

更改 Web 服务的操作

要更改 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 文件,操作显示为 Web 服务的一个子节点。
显示 Web 服务新的操作子节点的“项目”选项卡

重新部署 Web 服务,并且如部署和测试 Axis2 Web 服务中所述的那样对其进行测试。

更多练习

这里是一些您可以探索的其他想法:

  • 为 Axis2 Web 服务创建一个 JAX-WS 客户机。我们需要 Web 服务的 WSDL URL。要获得 WSDL URL,右键单击 Web 服务节点并选择“属性”。WSDL 文件 URL 在“属性”页面上。有关 JAX-WS 服务的详细信息,请参阅 JAX-WS Web 服务入门部署 JAX-WS Web 服务客户机
  • 尝试将 Web 服务部署到其他应用程序服务器。您必须更改 Axis2 选项 -- 请参阅 设置 Tomcat 的 Axis2 选项设置 GlassFish 的 Axis2 选项
  • 将现有的 Java 类公开为 Axis2 Web 服务。该 Java 类必须在 Java 应用程序或 Java 类库项目中。


更多信息

有关使用 NetBeans IDE 创建和使用 Web 服务的更多信息,请参见以下资源:

要发送意见和建议,获取支持,了解关于 NetBeans IDE Java EE 开发特性的最新发展,请加入 邮件列表

Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems