java axis2 发布服务

上篇文章里,说到pojo内,class不能有包名,这样的要求,肯定是不符现实开发的。显然,apache也是允许带包的类发布webservice的,不然不是没人用啦。

1.先写一个简单的计算器 带多个方法,带参数,有返回值的

package com.zy.axis2.test;

public class CalculateService {
	// 加法
	public Double plus(Double x, Double y) {
		return x + y;
	}

	// 减法
	public Double minus(Double x, Double y) {
		return x - y;
	}

	// 乘法
	public Double multiply(Double x, Double y) {
		return x * y;
	}

	// 除法
	public Double divide(Double x, Double y) {
		if (y != 0)
			return x / y;
		else
			return -1.0;
	}
}


2.编写server.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- 服务名称 --> 
<service name="CalculateService">
	<!-- 服务描述 --> 
	<description>
		算术运算的服务
	</description>
	<!-- 设置服务类 --> 
	<parameter name="ServiceClass">
		com.zy.axis2.test.CalculateService
	</parameter>
	<operation name="plus">
		<!-- mep 固定写法,class:RPCMessageReceiver(带返回值的处理器) RPCInOnlyMessageReceiver(不带返回值的处理器)-->
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
	</operation>
	<operation name="minus">
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
	</operation>
	<operation name="multiply">
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
	</operation>
	<operation name="divide">
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
	</operation>
</service>


放到meta-inf目录下(直接使用eclipse打包,然后在打开jar文件,把serverm.xml丢进去),修改jar后缀为aar后缀


 我打的名字是server.jar,更改后缀为aar,所以最后是server.aar,Axis2建议使用aar发布WebService,
       将server.aar放到<Tomcat安装目录>/webapps/axis2/WEB-INF/services下,访问http://localhost:8080/axis2/services/listServices,
       多出了一个CalculateService,说明发布成功。



分别访问
       http://localhost:8080/axis2/services/CalculateService/plus?x=1&y=2
       http://localhost:8080/axis2/services/CalculateService/divide?x=1&y=2
       http://localhost:8080/axis2/services/CalculateService/minus?x=1&y=2
       http://localhost:8080/axis2/services/CalculateService/multiply?x=1&y=2

比如


我们要严格遵守参数类型和值,假如访问的参数的错误的,会报错





       也可以发布多个WebService,可以使用serviceGroup标签。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值