spring集成axis2以接口方式发布webservice

因此我们定义一个接口,将想要发布的方法在接口中声明。

这里我们增加一个IFileWebService接口类,只声明了add、del、down三个方法

package com.alpha.service;

public interface IFileWebService {

	public abstract String add();

	public abstract String del();

	public abstract String down();

}

接下来我们只需要修改services.xml文件即可,只是配置了接口类的parameter ,增加的内容

<!-- 接口类 -->

<parameter name="ServiceClass">

com.alpha.service.IFileWebService

</parameter>

<?xml version="1.0" encoding="UTF-8"?>
<serviceGroup>
    <service name="fileWebService" targetNamespace="http://service.crystal.com/" scope="application">
        <description>spring集成axis2案例</description>
        <!-- 通过ServiceObjectSupplier参数指定SpringServletContextObjectSupplier类来获得Spring的ApplicationContext对象 -->
        <parameter name="ServiceObjectSupplier">
            org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier
        </parameter>
        <!-- 
	       SpringBeanName固定的不能改
	       fileWebService是spring中bean的id
	     -->
        <parameter name="SpringBeanName">
            fileWebService
        </parameter>
        
        <!-- 接口类 -->
        <parameter name="ServiceClass">
        	com.alpha.service.IFileWebService
        </parameter>
        
        <!-- 
		    <messageReceivers>:用于设置处理WebService方法的处理器
		    in-out有返回值
		    in-only没有返回值
	    -->
        <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>

再次访问便可看到只有接口中声明的方法

经验分享 程序员 微信小程序 职场和发展