转发以作记录,原文链接
https://blog.youkuaiyun.com/panguang9713/article/details/77471330
项目启动时,一直报这个异常,在网上找了很久,终于在这个文章上找到了解决方案
当你到我的博客恭喜你找到问题解决办法了,因为当我出现这个问题的时候翻遍了百度和谷歌,没找到一篇相关的。唯独有一个人写了,但是并没有解决我的问题:http://blog.youkuaiyun.com/panguang9713/article/details/77471330。
首先说下我的开发环境:
IDEA 2017.2.5
maven 3
apache-tomcat-7.0.81
Spring 4.2.4 RELEASE(开发时用的),4.3.12.RELEASE(部署后,可以直接使用它)
需要注意的是我的工程有父工程和子工程,其中父工程的pom.xml中定义好所有的依赖库和版本号,子工程只需要依赖所依赖的库即可,无需带上版本号。重点来了,我在开发过程中一起运行都正常,但是部署到Tomcat中就报文章上面的错误:提示AopProxyUtils类中找不到getSingletonTarget方法。于是我看了下依赖的jar包——spring-aop-4.2.4.RELEASE.jar,里面确实没有这个方法!我就纳闷了,为什么开发中没有报这个错误,而到部署的时候有这个错误呢,原因不得而知啊!没办法,我就翻看Spring 4.3.X版本的API,发现里面有这个方法,于是我把Spring版本改为4.3.12.RELEASE,重新部署,搞定!
同时评论上有条评论说的也很好,我的就是activemq依赖导致的问题
我今天也遇到同样的问题了,当试了你的方法之后还是不行。我开始用的jar包是spring-aop-4.0.2.RELEASE.jar,activemq的jar包是activemq-all-5.15.2.jar、activemq-pool-5.15.2.jar,后来我改为用activemq-all-5.9.0.jar、activemq-pool-5.9.0.jar,spring包版本还是用4.0.2的,重新部署后运行正常。部署的tomcat版本是apache-tomcat-7.0.65,本地开发的是apache-tomcat-7.0.72,经测试都没问题。所有我想是activemq的包版本太高,跟spring版本不匹配导致的(推测而已,有待验证)。