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

来源:互联网 发布:java从服务器下载文件 编辑:程序博客网 时间:2024/04/26 04:03

上一篇是通过spring bean的方式发布webservice,发布的webservice有些弊端,因为将所有的public方法都发布了,一些setter、getter方法也发布出去,这不是我们想要的。

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

这里我们增加一个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>

再次访问http://localhost:8080/WebServiceTest/services/fileWebService?wsdl便可看到只有接口中声明的方法

原创粉丝点击