天天看点

问题解决:java.lang.NoSuchMethodError: org.springframework.aop.support.AopUtils.isCglibProxyClass问题场景问题环境问题原因解决方案结果总结随缘求赞

文章目录

  • 问题场景
  • 问题环境
  • 问题原因
  • 解决方案
    • 一、降低spring版本
    • 二、升级CXF版本
    • 三、项目新建AopUtils类,覆盖写入方法
  • 结果
  • 总结
  • 随缘求赞

问题场景

最近进行项目微服务重构,而有一个老项目是使用cxf。在重构之后,项目运行的时候,报错,提示:

java.lang.NoSuchMethodError: org.springframework.aop.support.AopUtils.isCglibProxyClass
           

问题环境

软件 版本
springboot 2.1.1.RELEASE
spring 5.1.3.RELEASE
cxf 2.6.6

问题原因

从报错提示,可以知道是类AopUtils没有方法isCglibProxyClass。通过查看源码,也发现的确是不存在该方法。该方法已经被移植到org.springframework.util.ClassUtils里面去了。而旧项目的spring版本是2.5。版本差异较大,方法也发生了改变。

解决方案

这里有三个方案提供给大家进行参考

一、降低spring版本

既然是版本导致的方法不存在,降低spring版本即可。不过这种方法不是很可取,毕竟牵一而动全身,可能会导致其他问题的发生。

二、升级CXF版本

cxf版本是2.6.6,升级版本至3.0以上,应该可以解决这个问题。不过原来xml和java里面关于webservice的部分可能得做点微调。

三、项目新建AopUtils类,覆盖写入方法

如果不想升级版本,直接在项目新建相同路径的类,然后复制现有方法的内容,之后将缺少的方法写入即可。如下:

public static boolean isCglibProxyClass(Class clazz) {
    return clazz != null && clazz.getName().indexOf("$$") != -1;
}
           

结果

我这里是选择了第三种方法,启动项目无报错,问题顺利解决。

总结

根据实际情况选择解决方法,事半功倍!!!

随缘求赞

如果我的文章对大家产生了帮忙,可以在文章底部点个赞或者收藏;

如果有好的讨论,可以留言;

如果想继续查看我以后的文章,可以点击关注

可以扫描以下二维码,关注我的公众号:枫夜之求索阁,查看我最新的分享!

问题解决:java.lang.NoSuchMethodError: org.springframework.aop.support.AopUtils.isCglibProxyClass问题场景问题环境问题原因解决方案结果总结随缘求赞
问题解决:java.lang.NoSuchMethodError: org.springframework.aop.support.AopUtils.isCglibProxyClass问题场景问题环境问题原因解决方案结果总结随缘求赞

继续阅读