Axis2: 使用services.xml文件发布WebService(2)
2015-03-22 12:37
411 查看
第二种: 使用services.xml文件发布WebService
为什么使用services.xml文件?
(1)0配置方式发布webservice不方便,只能以class方式发布,在很多应用中不仅仅只有一个webservice类,当webservice类很多的时候,发布大量的class文件很不方便。在实际应用中,一把的方法是将大量的class文件以及其他相关的文件打包成jar文件,并发布。但0配置方式不能使用jar文件进行发布。
(2)webservice不能使用包就不能使用package关键字,这就意味着所有的class文件都要直接放在pojo目录中,如果有太多的class文件,显示乱码。为了解决上述问题,Axis2提供了另外一种发布Web Service的方法,这种方法要配置services.xml文件。
操作步骤:
(1)首先,新建META目录,并将services.xml元数据放到META-INF目录中:
配置services.xml文件
<!-- 配置services的名称,不能重复 -->
<service name="SimpleService1">
<parameter name="ServiceClass">
service.SimpleService
</parameter>
</service>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
(2)新建SimpleService文件,并编译:
package service;
public class SimpleService{
public String getGreeting(String name){
return "你好" + name + "(services.xml)";
}
}
注意编译生成class文件目录结构service\SimpleService.class。
将services.xml元数据放到META-INF目录中,将service和META-INF
压缩成jar文件(或者aar):
jar cvf ws.jar service META-INF
将ws.jar复制到C:\tomcat\apache-tomcat-7.0.47\webapps\axis2\WEB-IN\services目录中即可。
tomcat会自动发布,检验结果:
http://localhost:8080/axis2/services/SimpleService1/getGreeting?param0=bill
如何用services.xml的方式发布多个web service?
如果我们发布多个webservice,就需要在services.xml文件配置多个webservice。
配置多个webservice要使用<serviceGroup>元素,一个services.xml元数据放到META-INF目录中,将service和META-INF中只能有一个<serviceGroup>元素,<serviceGroup>元素中可以有0个或者多个<service元素,每个<service>元素表示一个。
webservice:
<serviceGroup>
<service name="service1">.....</service>
<service name="service2">.....</service>
......
</serviceGroup>
例如:
<serviceGroup>
<service name="MyService">
<parameter name="ServiceClass">
service.SimpleService
</parameter>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
</service>
<service name="SimpleService1">
<parameter name="ServiceClass">
service.SimpleService
</parameter>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
</service>
</serviceGroup>
为什么使用services.xml文件?
(1)0配置方式发布webservice不方便,只能以class方式发布,在很多应用中不仅仅只有一个webservice类,当webservice类很多的时候,发布大量的class文件很不方便。在实际应用中,一把的方法是将大量的class文件以及其他相关的文件打包成jar文件,并发布。但0配置方式不能使用jar文件进行发布。
(2)webservice不能使用包就不能使用package关键字,这就意味着所有的class文件都要直接放在pojo目录中,如果有太多的class文件,显示乱码。为了解决上述问题,Axis2提供了另外一种发布Web Service的方法,这种方法要配置services.xml文件。
操作步骤:
(1)首先,新建META目录,并将services.xml元数据放到META-INF目录中:
配置services.xml文件
<!-- 配置services的名称,不能重复 -->
<service name="SimpleService1">
<parameter name="ServiceClass">
service.SimpleService
</parameter>
</service>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
(2)新建SimpleService文件,并编译:
package service;
public class SimpleService{
public String getGreeting(String name){
return "你好" + name + "(services.xml)";
}
}
注意编译生成class文件目录结构service\SimpleService.class。
将services.xml元数据放到META-INF目录中,将service和META-INF
压缩成jar文件(或者aar):
jar cvf ws.jar service META-INF
将ws.jar复制到C:\tomcat\apache-tomcat-7.0.47\webapps\axis2\WEB-IN\services目录中即可。
tomcat会自动发布,检验结果:
http://localhost:8080/axis2/services/SimpleService1/getGreeting?param0=bill
如何用services.xml的方式发布多个web service?
如果我们发布多个webservice,就需要在services.xml文件配置多个webservice。
配置多个webservice要使用<serviceGroup>元素,一个services.xml元数据放到META-INF目录中,将service和META-INF中只能有一个<serviceGroup>元素,<serviceGroup>元素中可以有0个或者多个<service元素,每个<service>元素表示一个。
webservice:
<serviceGroup>
<service name="service1">.....</service>
<service name="service2">.....</service>
......
</serviceGroup>
例如:
<serviceGroup>
<service name="MyService">
<parameter name="ServiceClass">
service.SimpleService
</parameter>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
</service>
<service name="SimpleService1">
<parameter name="ServiceClass">
service.SimpleService
</parameter>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
</service>
</serviceGroup>
相关文章推荐
- WebService大讲堂之Axis2(3):使用services.xml文件发布WebService
- WebService大讲堂之Axis2(3):使用services.xml文件发布WebService
- axis2实现webservice之使用services.xml文件发布WebService
- Axis2(3):使用services.xml文件发布WebService
- WebService之Axis2系列教程(四)使用services.xml文件发布WebService
- WebService大讲堂之Axis2(3):使用services.xml文件发布WebService
- WebService大讲堂之Axis2(3):使用services.xml文件发布WebService
- 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 使用services.xml文件发布WebService
- WebService大讲堂之Axis2(3):使用services.xml文件发布WebService
- WebService大讲堂之Axis2(3):使用services.xml文件发布WebService
- WebService大讲堂之Axis2(3):使用services.xml文件发布WebService
- 使用services.xml文件发布WebService
- WebService大讲堂之Axis2(3):使用services.xml文件发布WebServic