axis2与Spring集成配置的几种方式

2023-12-10 08:32

本文主要是介绍axis2与Spring集成配置的几种方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、services.xml配置方式:

1、第一种配置方式: 按方法名称进行配置
<operation name="methodName">
 <!--表示有参有返回值的方法-->
 <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
 <!--表示有参没有返回值的方法-->
 <messageReceiver class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
</operation>

2、第二种配置方式:
<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>

3、普通类配置:
<service name="serviceName">
 <Description>服务的描述</Description>
 <parameter name="ServiceClass">全类名</parameter>
 <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>

4、与Spring集成配置(web工程):
<service name="MySpringService" targetNamespace="http://www.test.org">
 <Description>测试spring与axis集成(web工程)</Description>
 <parameter name="ServiceObjectSupplier">org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier</parameter>
 <parameter name="SpringBeanName">springBeanName</parameter>
 <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>

5、与Spring集成配置(JAVA工程):
<service name="MySpringService" targetNamespace="http://www.test.org">
 <Description>测试spring与axis集成(web工程)</Description>
 <parameter name="ServiceObjectSupplier">org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier</parameter>
 <parameter name="SpringBeanName">springBeanName</parameter>
 <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>

二、axis2与Spring集成(Web程序中)
1: 把axis2放入到服务器的发布目录下,把spring.jar放入到/axis2/WEB-INF/lib下.
2: 把axis2中lib下的包引入工程之中(把spring.jar放入到/axis2/WEB-INF/lib下)
 axiom-api-1.2.7.jar
 axiom-impl-1.2.7.jar
 axis2-adb-1.4.1.jar
 axis2-kernel-1.4.1.jar
 axis2-spring-1.4.1.jar
 backport-util-concurrent-3.1.jar
 commons-codec-1.3.jar
 commons-httpclient-3.1.jar
 commons-logging-1.1.1.jar
 neethi-2.0.4.jar
 spring.jar
 woden-api-1.0M8.jar
 woden-impl-dom-1.0M8.jar
 wsdl4j-1.6.2.jar
 XmlSchema-1.4.2.jar
 annogen-0.1.0.jar
3: 在web.xml中加入
 <!-- spring -->
    <listener>
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
 <!-- webServices -->
 <servlet>
        <servlet-name>AxisServlet</servlet-name>
        <display-name>Apache-Axis Servlet</display-name>
        <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
  
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/servlet/AxisServlet</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>*.jws</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>
4: 编写service类和对应的方法并在applicationContext.xml中进行Bean的配置
5: 在WEB-INF下建services/模板名称/META-INF/services.xml
6: 然后再services.xml中对服务进行配置就可以了,访问:http://localhost:8080/projName/services/serviceName?wsdl就可以访问到对应的服务描述文件了。

三、axis2与Spring集成(JAVA程序中)
1: 把axis2放入到服务器的发布目录下,把spring.jar放入到/axis2/WEB-INF/lib下.
2: 把axis2中lib下的包引入工程之中
 axiom-api-1.2.7.jar
 axiom-impl-1.2.7.jar
 axis2-adb-1.4.1.jar
 axis2-kernel-1.4.1.jar
 axis2-spring-1.4.1.jar
 backport-util-concurrent-3.1.jar
 commons-codec-1.3.jar
 commons-httpclient-3.1.jar
 commons-logging-1.1.1.jar
 neethi-2.0.4.jar
 spring.jar
 woden-api-1.0M8.jar
 woden-impl-dom-1.0M8.jar
 wsdl4j-1.6.2.jar
 XmlSchema-1.4.2.jar
 annogen-0.1.0.jar
3: 编写service类和对应的方法并在applicationContext.xml中进行Bean的配置
4:在applicationContext.xml中引入axis2的bean
 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd" >
 <beans>
  <bean id="applicationContext" class="org.apache.axis2.extensions.spring.receivers.ApplicationContextHolder"  />
 </beans>
5: 建立一个初始化spring容器的类(com.test.axis2.java.SpringInit)实现ServiceLifeCycle接口。编写startUp方法如下:
 ClassLoader classLoader = service.getClassLoader();
    ClassPathXmlApplicationContext appCtx = new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"}, false);
    appCtx.setClassLoader(classLoader);
    appCtx.refresh();
6: 在src下建meta-inf/services.xml,内容如下:
 <?xml version="1.0" encoding="UTF-8"?>
 <serviceGroup>
  <service name="MySpringAxis2" class="com.test.axis2.java.SpringInit">
   <description>Spring aware</description>
   <parameter name="ServiceObjectSupplier">
    org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier
   </parameter>
   <parameter name="SpringBeanName">
    springService
      </parameter>
   <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>
7: 把src下的文件把成jar包后,改名为*.aar 放入/axis2/WEB-INF/services下。
8: 启动服务器,访问http://localhost:8080/projName/services/serviceName?wsdl就可以访问到对应的服务描述文件了。

这篇关于axis2与Spring集成配置的几种方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/476571

相关文章

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

SQL server配置管理器找不到如何打开它

《SQLserver配置管理器找不到如何打开它》最近遇到了SQLserver配置管理器打不开的问题,尝试在开始菜单栏搜SQLServerManager无果,于是将自己找到的方法总结分享给大家,对SQ... 目录方法一:桌面图标进入方法二:运行窗口进入方法三:查找文件路径方法四:检查 SQL Server 安

SpringMVC获取请求参数的方法

《SpringMVC获取请求参数的方法》:本文主要介绍SpringMVC获取请求参数的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下... 目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

SpringBoot条件注解核心作用与使用场景详解

《SpringBoot条件注解核心作用与使用场景详解》SpringBoot的条件注解为开发者提供了强大的动态配置能力,理解其原理和适用场景是构建灵活、可扩展应用的关键,本文将系统梳理所有常用的条件注... 目录引言一、条件注解的核心机制二、SpringBoot内置条件注解详解1、@ConditionalOn

通过Spring层面进行事务回滚的实现

《通过Spring层面进行事务回滚的实现》本文主要介绍了通过Spring层面进行事务回滚的实现,包括声明式事务和编程式事务,具有一定的参考价值,感兴趣的可以了解一下... 目录声明式事务回滚:1. 基础注解配置2. 指定回滚异常类型3. ​不回滚特殊场景编程式事务回滚:1. ​使用 TransactionT