最新历史版本 :使用services.xml文件发布 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

用 axis2 发布 WebService,虽然可以将 POJO 类放在%Tomcat_Home%\webapps\axis2\WEB-INF\pojo目录中直接发布成 WebService,这样做不需要进行任何配置,但这些 POJO 类不能在任何包中。为此,axis2 需用 services.xml 文件方法方式发布,此方法允许将带包的类发布成 WebService。

此方法与 POJO 发布的不同之处在于要新建 services.xml 文件,并且需要以 .aar 文件格式进行发布,下面一个示例介绍实现过程。


2. 示例编辑

2.1 创建类

首先创建一个简单的类,代码如下:

package service;
public class MyService
{
    public String getGreeting(String name)
    {
        return "您好 " + name;
    }
    public void update(String data)
    {
        System.out.println("<" + data + ">已经更新");
    }
}


2.2 新建 services.xml

这种方式和直接放在 pojo 目录中的POJO类不同,要想将 MyService 类发布成 WebService,需要一个 services.xml 文件,这个文件需要放%Tomcat_Home%\webapps\axis2\META-INF目录中,该文件的内容如下:

<service name="myService">
    <description>
        Web Service例子
    </description>
    <parameter name="ServiceClass">
        service.MyService  
    </parameter>
    <messageReceivers>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
            class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
            class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
    </messageReceivers>
</service>

注:若 services.xml 文件中包含中文字符,则需要将此 XML 文件以 UTF-8 格式进行保存,否则会出现错误。

其中 service 元素是用于发布 WebService,一个 service 元素只能发布一个 WebService 类,name 属性表示 WebService 名。description元素表示当前 WebService 的描述,parameter 元素用于设置 WebService 的参数,在这里用于设置 WebService 对应的类名。在这里最值得注意的是messageReceivers元素,该元素用于设置处理 WebService 方法的处理器。例如,getGreeting 方法有一个返回值,因此,需要使用可处理输入输出的 RPCMessageReceiver 类,而update方法没有返回值,因此,需要使用只能处理输入的 RPCInOnlyMessageReceiver 类。


2.3 打包成 .aar 文件

.aar 文件实际上就是改变了扩展名的 .jar 文件。在现在建立了两个文件:MyService.java 和 services.xml,将 MyService.java 编译,生成 MyService.class。services.xml 和 MyService.class 文件的位置分别为:E:\ws\META-INF\services.xmlE:\ws\service\MyService.class

在windows控制台中进入ws目录,并输入如下的命令生成.aar文件:

jar cvf ws.aar .

在 E 盘的 ws 目录下就会生成 ws.arr 文件。
222

2.4 发布 WebService

将 ws.aar 文件复制到%Tomcat_Home%\webapps\axis2\WEB-INF\services目录中,启动 Tomcat 后,就可以调用这个 WebService 了。

222

2.5 查看发布的服务

如下面的URL可以获得这个 WebService 的 WSDL 内容:http://localhost:8080/axis2/services/myService?wsdl
222

已经显示 WebService 发布成功了。

在浏览器地址栏中输入如下的 URL 来分别测试 getGreeting 方法:

http://localhost:8080/axis2/services/myService/getGreeting?name=bill

注:路径中的 myService 是 services.xml 中 service 元素的 name 属性的值。