使用services.xml文件发布

编辑
文档创建者:印然 (67260 )     浏览次数:1841次     编辑次数:12次     最近更新:ukae 于 2018-08-16     

目录:

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属性的值。

附件列表


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

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

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