步骤
建立,需要暴露的接口及实现类,引入依赖包入pom.xml中
<!-- 引入Axis2依赖 START-->
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-http</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-local</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.4.0</version>
</dependency>
<!-- 引入Axis2依赖 END-->
<!-- axis2整合spring START -->
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-spring</artifactId>
<version>1.6.2</version>
</dependency>
<!-- axis2整合spring END -->
- 建立一个spring文件如:applicationContext-ws.xml(这个spring文件,要被加载)
<!-- wsdl 这个名字,就是你服务的名字,类就是,必要暴露的方法的那个类-->
<bean id="MyWsdl" class="integrate.shiro.wsdl.ImpExpose"></bean>
<!-- 使 bean交个 spring 管理 id不可变 -->
<bean id="applicationContext" class="org.apache.axis2.extensions.spring.receivers.ApplicationContextHolder"></bean>
- 在项目的WEB-INF文件夹下,建立一个services然后,在此文件夹内建立一个spring文件夹,然后,再到spring文件内建立META-INF文件夹,然后,在其内,建立一个,services.xml
services.xml
<?xml version="1.0" encoding="UTF-8" ?>
<serviceGroup>
<!--这个服务id名字随你定 ,除了注解的要改,其他不动即可-->
<service name="MyWsdlService" scope="application">
<description>simple spring example</description>
<parameter name="ServiceObjectSupplier">
org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier
</parameter>
<!-- 你暴露的方法的那个bean的名字 -->
<parameter name="SpringBeanName">MyWsdl</parameter>
<messageReceivers>
<messageReceiver mep= "http://www.w3.org/2004/08/wsdl/in-only"
class = "org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
<messageReceiver mep= "http://www.w3.org/2004/08/wsdl/in-out"
class = "org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
</service>
</serviceGroup>
- 配置web,映射AxisServlet,映射名不限定,此映射放在最后即可
<!-- 映射 AxisServlet START-->
<servlet>
<servlet-name>axis2</servlet-name>
<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>axis2</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<!-- 映射 AxisServlet END-->
调用暴露方式
调用流程,在这篇文章的最后面