使用AXIS2实现多个服务

一、使用AXIS2 1.4根据WSDL分别生成服务端代码

例:

1)生成多个用户信息查询服务端代码:

wsdl2java -uri MultipleUserInfoQuery.wsdl -ss -sd -g -ns2p http://www.test.com/schema/MultipleUserInfoQuery/=com.test.demo.userinfo.multiple,http://www.test.com/schema/MultipleUserInfoQuery/type=com.test.demo.userinfo.multiple.type

 2)生成单个用户信息查询服务端代码:

wsdl2java -uri SingleUserInfoQuery.wsdl -ss -sd -g -ns2p http://www.test.com/schema/SingleUserInfoQuery/=com.test.demo.userinfo.single,http://www.test.com/schema/SingleUserInfoQuery/type=com.test.demo.userinfo.single.type

二、新增接口

增加一个都支持查询的接口,将两个接口合并为一个接口,示例代码如下: 

public interface IUserInfoQuery
    {
        public com.test.demo.userinfo.single.QuerySingleUserInfoResponse querySingleUserInfo(
                com.test.demo.userinfo.single.QuerySingleUserInfo querySingleUserInfo);

        public com.test.demo.userinfo.multiple.QueryMultipleUserInfoResponse queryMultipleUserInfo(
                com.test.demo.userinfo.multiple.QueryMultipleUserInfo queryMultipleUserInfo);
    }

三、 合并两个服务的***MessageReceiverInOut.java类

这一步是最关键的一步操作,如果能合并成功,这个功能基本上就实现了。
示例操作如下:

1):将IMultipleUserInfoQueryMessageReceiverInOut.java复制到all包下,将名称改为:

       IUserInfoQueryMessageReceiverInOut.java
2):IMultipleUserInfoQuerySkeleton skel = (IMultipleUserInfoQuerySkeleton) obj;;改为:

       IUserInfoQuery skel = (IUserInfoQuery) obj;
3):在invokeBusinessLogic方法中将ISingleUserInfoQueryMessageReceiverInOut.java类

       invokeBusinessLogic方法中if ("querySingleUserInfo".equals(methodName))语句包含的

       内容合并到IUserInfoQueryMessageReceiverInOut.java中。
4):根据错误提示,复制相应的方法即可;

四、配置服务

将生成的Service.xml配置文件合并成一个,然后在添加一个都支持的配置文件,都支持的配置示例如下:

<!-- 都支持配置 -->
<service name="UserInfoQuery">
	<messageReceivers>
	
		<!-- 配置新增的***Inout -->
		<messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
			class="com.test.demo.userinfo.all.IUserInfoQueryMessageReceiverInOut"/>
	</messageReceivers>
	
	<!-- 配置完成该功能的实现类 -->
	<parameter name="ServiceClass">
		com.test.demo.userinfo.all.UserInfoQueryImpl
	</parameter>
	<parameter name="useOriginalwsdl">true</parameter>
	<parameter name="modifyUserWSDLPortAddress">true</parameter>
	<operation name="queryMultipleUserInfo"
		mep="http://www.w3.org/ns/wsdl/in-out"
		namespace="http://www.test.com/schema/MultipleUserInfoQuery/">
		<actionMapping>
			http://www.test.com/schema/MultipleUserInfoQuery
		</actionMapping>
		<outputActionMapping>
			http://www.test.com/schema/MultipleUserInfoQuery/MultipleUserInfoQuery/queryMultipleUserInfoResponse
		</outputActionMapping>
	</operation>
</service>

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值