CXF与JAX-RS异常:org.springframework.aop.support.AopUtils.isCglibProxyClass(Ljava/lang/Class;)Z

  • Post author:
  • Post category:java


概述

最近因公司项目需要,实现不同的项目的RESTful访问,决定采用CXF加上JAX-RS来实现。CXF相比开始的Xfire和后来的axis2,使用起来要顺手多了,前几年用过axis2,后来又用过CXF。

问题

最近使用CXF结合JAX-WS的时候,出现以下异常:

Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: 
Property 'serviceBeans' threw exception; nested exception is java.lang.NoSuchMethodError: org.springframework.aop.support.AopUtils.isCglibProxyClass(Ljava/lang/Class;)Z
	at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:121)
	at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:75)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1514)
	... 70 more

框架如下:

Spring MVC:4.2.5 RELEASE

CXF:2.X

JAX-RS:1.1.1(jsr311-api)

解决




试了好几次,想到了几种原因,比如是AOP的问题,CXF与JAX-RS结合的配置文件和代码的问题,,,但发现改了还是不对。后来才发现是Spring架构和CXF架包的版本问题,我用的Spring版本是4.2.5RELEASE,CXF的版本是2.X,导致冲突了。如果Spring使用的是4.2以上的版本,那CXF的版本不要低于3.X,现在CXF最新的版本是3.2.5(CXF官网:http://cxf.apache.org/),看描述是解决了以前版本的一些问题,于是决定就用这个版本的了。





版权声明:本文为qinxian20120原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。