WebServices学习笔记(四)使用services.xml文件发布WebService
来源:互联网 发布:战舰世界数据 编辑:程序博客网 时间:2024/05/19 23:55
四、使用services.xml文件发布WebService
前面发布webservices所建立的java类都不能有包名,这里用配置文件services.xml搭建能有包名的webservice
首先创建MyService类,在service包下
package service;import javax.jws.WebParam;public class MyService {public String getGreeting(@WebParam(name="name")String name){return "Hello " + name;}public void update(@WebParam(name="data")String data) { System.out.println("<" + data + ">已经更新"); }}然后建立services.xml
<?xml version="1.0" encoding="UTF-8"?><!-- 一个service元素只能发布一个webservice,name表示这个webservice的名称, 比如用下面的URL可以获得这个WebService的WSDL内容:http://localhost:8080/axis2/services/MyService?wsdl,name属性指的就是?wsdl前面的那个名称。建议设置与类名同样的名字--><service name = "MyService"><!-- 对当前webservice的描述 --><description>WebService example</description><!-- 设置webservice对应的类名,每个parameter有一个强制的属性(name)和一个可选的属性(locked),locked属性表示是否允许parameter的值被层次中的另一个子结点覆盖 --><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>
一些简单的东西看上面的注释,这里先说一下MEP——Message Exchange Pattern,消息交换模式,它定义了webservices提供方与请求方之间SOAP1.2消息的交换模式。
目前Axis2支持三种模式:In-Only、Robust In-Only和In-Out。In-Only消息交换模式只有SOAP请求,而不需要应答; Robust-In消息交换模式发送SOAP请求,只有在出错的情况下才返回应答;In-Out消息交换模式总是存在SOAP请求和应答。
SOAP支持的模式还有:In-Optional-Out、Out-Only、Robust Out-Only、Out-In、Out-Optional-In等
每个人也可以定义自己的MEP,但SOAP1.2规范要求分配给每个MEP一个唯一的URI以识别它。
像上面的In-Out MEP的URI是http://www.w3.org/2004/08/wsdl/in-out
In-Only MEP的URI是http://www.w3.org/2004/08/wsdl/in-only
使用这种方式发布WebService,必须打包成.aar文件,.aar文件实际上就是改变了扩展名的.jar文件。在现在建立了两个文件:MyService.java和services.xml。将MyService.java编译,生成MyService.class。
services.xml和MyService.class文件的位置如下:
D:\xampp\tomcat\webapps\ws\META-INF\services.xml
D:\xampp\tomcat\webapps\ws\service\MyService.class
在windows控制台中进入ws目录,并输入如下的命令生成.aar文件(实际上,.jar文件也可以发布webservice,但axis2官方文档中建议使用.aar文件发布webservice):
jar cvf ws.aar .(注意最后还有个".",表示将当前目录打包)
最后将ws.aar文件复制到<Tomcat安装目录>\webapps\axis2\WEB-INF\services目录中,启动Tomcat后,就可以调用这个WebService了。
如果想发布多个WebService,可以使用<serviceGroup>元素,如再建立一个MyService1类
package servicepublic class MyService1{ public String getName() { return "bill"; }}
services.xml如下:
<serviceGroup> <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> <service name="myService1"> <description> Web Service例子 </description> <parameter name="ServiceClass"> service.MyService1 </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></serviceGroup>
- WebServices学习笔记(四)使用services.xml文件发布WebService
- 使用services.xml文件发布WebService
- WebService之Axis2系列教程(四)使用services.xml文件发布WebService
- WebService之Axis2 使用services.xml文件发布WebService
- axis2实现webservice之使用services.xml文件发布WebService
- 使用services.xml发布webservice
- WebService大讲堂之Axis2(3):使用services.xml文件发布WebService(转载)
- Axis2(3):使用services.xml文件发布WebService
- Axis2: 使用services.xml文件发布WebService(2)
- WebService大讲堂之Axis2(3):使用services.xml文件发布WebService
- WebService大讲堂之Axis2(3):使用services.xml文件发布WebService
- WebService大讲堂之Axis2(3):使用services.xml文件发布WebService
- WebService大讲堂之Axis2(3):使用services.xml文件发布WebService
- 利用Axis2开发WebService(5)---使用services.xml文件发布WebService
- WebService大讲堂之Axis2(3):使用services.xml文件发布WebService
- WebService大讲堂之Axis2(3):使用services.xml文件发布WebService
- WebService大讲堂之Axis2(3):使用services.xml文件发布WebService
- 利用Axis2开发WebService(5)---使用services.xml文件发布WebService
- Java NIO系列教程(四) Scatter/Gather
- $$_javassist_1 cannot be cast to javassist.util.proxy.Proxy
- Java NIO系列教程(五) 通道之间的数据传输
- LeetCode__Max Points on a Line
- Linux 多进程与多线程
- WebServices学习笔记(四)使用services.xml文件发布WebService
- 10300-Ecological Premium
- Exe4j 打包jar包成exe
- 给大家介绍一个java取色器工具
- C++ 关键字mutable 和 volatile
- stm32 堆和栈(stm32 Heap & Stack)
- 经验tree我耳如果
- SVN中用法详解和注意事项
- PHP Web项目开发学习,经验谈