奇怪的找不到类SpringNamingPolicy的错误
2016-12-25 09:58
302 查看
以下是错误堆栈的一部分:
能看出来,主要的异常信息就是:
实际上,这个类能够在spring-core包里面看到,有绝对是有的。对于这种情况,我们一般想到的应该是,存在多个版本包,但是,我遇到的不是这种情况,查看了maven依赖、查看了打包后的lib目录、清理了tomcat工作空间。
我遇到的问题原因是:定义的service层bean的一个方法添加了Transactional注解,但是这个bean没有实现任何接口,只是一个普通的class,定义如下:
问题也就在这里,一般来说我们是要定义接口、定义实体bean同时实现接口,也就是下面这种方式:
如果是采用的第二种样式,也就是实现接口的样式就不会出现找不到SpringNamingPolicy的问题了。应该是spring强制要求必须定义接口、依赖接口的一种限制吧(有机会一定去看下这段源码)。
最后,可能有看到的朋友会说,博主太菜,居然不知道要定义接口、不知道基本的依赖反转原则。其实不是的,大家估计都有针对某个东西写实验程序的时候,在写实验程序的时候大家就有可能会想着省事,偷下懒,这时候如果遇到了同样的问题,那也是相当郁闷和伤脑筋的。这个问题大概花掉了我3个小时的时间[无奈脸]
Caused by: java.lang.NoClassDefFoundError: org/springframework/cglib/core/SpringNamingPolicy at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:188) at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:109) at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:447) at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:333) at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:293) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:421) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1558) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) ... 45 more Caused by: java.lang.ClassNotFoundException: org.springframework.cglib.core.SpringNamingPolicy at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
能看出来,主要的异常信息就是:
java.lang.ClassNotFoundException: org.springframework.cglib.core.SpringNamingPolicy
实际上,这个类能够在spring-core包里面看到,有绝对是有的。对于这种情况,我们一般想到的应该是,存在多个版本包,但是,我遇到的不是这种情况,查看了maven依赖、查看了打包后的lib目录、清理了tomcat工作空间。
我遇到的问题原因是:定义的service层bean的一个方法添加了Transactional注解,但是这个bean没有实现任何接口,只是一个普通的class,定义如下:
@Service public class MutiTxServiceImpl3 { @Transactional public void dosth(){ } }
问题也就在这里,一般来说我们是要定义接口、定义实体bean同时实现接口,也就是下面这种方式:
@Service public class MutiTxServiceImpl3 implements IMutiTxService{ @Transactional public void dosth(){ } }
如果是采用的第二种样式,也就是实现接口的样式就不会出现找不到SpringNamingPolicy的问题了。应该是spring强制要求必须定义接口、依赖接口的一种限制吧(有机会一定去看下这段源码)。
最后,可能有看到的朋友会说,博主太菜,居然不知道要定义接口、不知道基本的依赖反转原则。其实不是的,大家估计都有针对某个东西写实验程序的时候,在写实验程序的时候大家就有可能会想着省事,偷下懒,这时候如果遇到了同样的问题,那也是相当郁闷和伤脑筋的。这个问题大概花掉了我3个小时的时间[无奈脸]
相关文章推荐
- springMVC js等文件找不到错误,也就是访问不了静态资源
- springMVC js等文件找不到错误
- spring的module-context.xml文件报找不到dubbo.xsd文件错误
- 奇怪的找不到类型错误-头文件互相包含
- Maven奇怪的问题,当找不到Maven输出的提示错误时可以试下这个方法
- idea导入spring源码提示jar包找不到错误修改方法
- SSH整合过程中出现找不到org.springframework.web.context.ContextLoaderServlet的错误
- eclipse+maven+springmvc+tomcat 报找不到类的错误
- springMVC js等文件找不到错误,也就是访问不了静态资源
- Spring Boot Eclipse maven项目 错误: 找不到或无法加载主类...解决办法
- 奇怪的Spring找不到类异常FatalBeanException
- springMVC js等文件找不到错误
- springMVC js等文件找不到错误
- 搭建SSH框架遇到的struts.xml找不到spring定义的bean的错误(配置文件的路径问题)
- 【spring boot】启动类启动 错误: 找不到或无法加载主类 com.codingapi.tm.TxManagerApplication 的解决方案
- assembly打包插件引发的自定义spring标签找不到声明的错误
- 大家帮我看看我在弄spring得aop编程一直出现错误找不到
- springMVC js等文件找不到错误
- springMVC js等文件找不到错误
- 奇怪的错误----在firefox中的帧页面源码中找不到, 但是保存成txt之后找得到