使用services.xml文件发布

编辑
  • 文档创建者:印然
  • 浏览次数:2487次
  • 编辑次数:13次
  • 最近更新:Kevin-s 于 2019-06-23
  • 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 文件。


    2.4 发布 WebService

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



    2.5 查看发布的服务

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


    已经显示 WebService 发布成功了。

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

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

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



    附件列表


    主题: 二次开发
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]