Spring4集成 axis2

1、 axis2+spring集成 简洁并可运行成功的例子(POJO和Spring:1的实现

http://blog.csdn.net/shimiso/article/details/9946743

2、axis2+spring集成  (POJO和Spring:2的实现

http://tzz6.iteye.com/blog/2269441


axis2 服务发布与spring对象注入总结:

部署Web服务 
部署Web服务的方式有两种:POJO和AAR 
如果使用 POJO方式(与开发所说的POJO不是一个概念),那么将编译好的class文件放到WEB-INF/pojo/目录下即可,但这种class不能使用包,因此局限性非常明显,没什么价值。 
另一种是使用 AAR包,部署到WEB-INF/services目录下。AAR有自己的特定结构,内部有包结构的class文件,在META-INF目录下放services.xml,在lib目录下放类库(貌似无法加载不起作用)。 

其实还可以将AAR包的内容解压出来直接放到axis2\WEB-INF\classes下,相当于 在axis2的web应用下做二次开发,这样可以将用到的jar直接放到axis2\WEB-INF\lib下,也可以获取到ServletContext。 

开发Web服务 
POJO: 
直接使用POJO来作为Web服务是最简单的方式,只需要配置好services.xml并按AAR包的格式打包好发布即可。 

POJO和Spring: 
1. 如果可以在Web应用级使用Spring(With a ServletContext): 
a) 那么可以在web.xml中使用servlet或listener将Spring的context加载进来。 
b) Spring配置文件中只需定义Web服务所需的bean配置。 
c) Axis2可以获取到ServletContext(applicationContext.xml在Axis2的Web应用中,而不在AAR包),因此在services.xml中配置依赖Spring的服务需要使用ServiceObjectSupplier(SpringServletContextObjectSupplier)和SpringBeanName以制定所需要配置为服务的Bean。 

2. 如果是在在Web应用级使用Spring,但Axis2不能获取到Spring的Context,比如Axis2在AAR包中(Without a ServletContext)(其实就是Spring能初始化,但Axis2获取不到ServletContext,那就换种方式获取Context): 
a) 在Spring的applicationContext.xml文件中添加Axis2的ApplicationContextHolder,让Axis2能够获取到Spring的Context。
b) Axis2的services.xml中对于使用Spring定义的bean使用ServiceObjectSupplier(SpringAppContextAwareObjectSupplier)和SpringBeanName。 

3. 如果是在AAR内部使用Spring(Spring Inside an AAR)(无法实现) 
a) 需要定义加载Spring配置文件的初始化程序(SpringInit),需要实现ServiceLifeCycle接口。 
b) 在services.xml中配置SpringInit,需要设置ServiceTCCL为composite、load-on-startup为true。这样在加载其他services前已经将Spring进行了初始化。 
c) 需要在Spring的applicationContext.xml文件中配置ApplicationContextHolder,这样Axis2便可以通过SpringAppContextAwareObjectSupplier获取到Spring的Context。 
d) 官方文档说可以将Spring的包放到AAR的lib目录下,但实际使用中无法加载AAR包lib目录下的类库,所以只能放到Axis2 Web应用的lib目录下。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值