Title:Spring学习报错记录 Author:刘赛赛 Date:2018/12/17 ----------------0-----------0------------------ ----------------0-----------0------------------html
1.##问题场景一:ApplicationContext 定义变量的时候,报错是“BeansException 没有处理”。 ##解决方案:在StackOverflow网站上,找到的解决方法是,引入spring-core.jar包。其余网站上说的什么包版本问题,都是瞎扯。java
----------------0-----------0------------------ ----------------0-----------0------------------spring
2.*##问题场景二 log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. Exception in thread "main" java.lang.NoSuchFieldError: logger ##解决方法 :写一个Logger文件进去,并加入记录。未解决状态,bug位置在MySpringBase项目的Main10代码中。 ----------------0-----------0------------------ ----------------0-----------0------------------express
3.##问题场景描述三 Caused by: java.lang.ClassNotFoundException: org.springframework.expression.ParserContext at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) ##分析与解决方法: 应该是缺了一个spring-expression.jar包。添加这个包以后,问题就解决了(或者说改变了)apache
3.1##新问题出现:org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.hdu.autowire.Cat] for bean with name 'cat' defined in class path resource [spring-cfg.xml]; nested exception is java.lang.ClassNotFoundException: com.hdu.autowire.Cat ##问题分析与解决 这个就好办了。这个错误实在是好笑,由于那一部分xml配置文件直接复制的,然而别人的包位置,与我本身写的包的位置不同,因此就冲突了。修改以后,问题就解决了。 ----------------0-----------0------------------ ----------------0-----------0------------------app
##问题场景描述四: 提示信息是junit.jar版本较低,因此我给更换了一个较高版本的测试工具。但是昨天晚上采起了两个操做,在Referenced Libraries里添加了一个新版包,但是,同时我还添加了一个 JUnit4的包,因此,如今我要删除一个,作个对比测试。 ##测试结果记录ide
1.删除Referenced Libraries中的单元测试包,保留JUnit4包组件,代码能正常运行。工具
2.二者共存时,能正常运行。单元测试
3.删除自带的JUnit4组件包,使用本身下载的包,代码报错,大体信息是说找不到匹配的测试,原报错信息以下:java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=cdShouldNotBeNull], {ExactMatcher:fDisplayName=cdShouldNotBeNull(com.bert.chapter2.soundSystem.CDPlayerTest)], {LeadingIdentifierMatcher:fClassName=com.bert.chapter2.soundSystem.CDPlayerTest,fLeadingIdentifier=cdShouldNotBeNull]] from org.junit.internal.requests.ClassRequest@6737fd学习
#我的总结:Eclipse本身找到的那个单元测试组件Junit4和Junit5就在个人计算机文件中,并且在这个组件中,附带了一个org.hamcrest.core_.1.3.0.jar的包,而我本身配置的包环境是没有这个附带包的。因此,有一个测试方向就是,把这个附带包加入到Referenced Lib 中,说不定就能使用本身下载的那个包了*。但是我如今不想作这个测试,目前的学习重点是Spring知识。 ----------------0-----------0------------------ ----------------0-----------0------------------
5.##问题场景描述五 **设置组件扫描的基础包时,包的名称书写错误,致使报错信息以下:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.bert.chapter2.soundSystem.CompactDisc' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations:
##分析与解决过程 错误的写法: @ComponentScan(basePackages= {"soundSystem","Video"})
正确写法: @ComponentScan(basePackages= {"com.bert.chapter2.soundSystem","Video"})
第一个包位置精确到soundSystem,,,然而,我第一次只写了一个soundSystem字符串在那里,就像第二个“Video”包的名称同样。其实,我想表达的是,soundSystem就是类所在的包,但是这个注解解析时,应该是忽略了以前的com.bert.chapter2这些包的定义部分。若是能看到这个注解类的定义就行了。
----------------0-----------0------------------ ----------------0-----------0------------------
6.##问题场景描述六 Bean配置,为同一个对象绑定了两个@Primary首选bean,结果致使,spring迷糊了,不知道选择哪一个做为bean返回了。具体报错以下: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'com.bert.chapter2.interfaces.Dessert' available: more than one 'primary' bean found among candidates: [getDessert, getSneak] ##解决措施 把那个@primary 注解只保留一个就行了,首选bean怎么可能有两个呢? ----------------0-----------0------------------ ----------------0-----------0------------------
7.##问题场景描述七 原报错信息: java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut 大意是pointcut 切点生成错误。
##解决措施: 百度说法一是,Aspect.jar 包的版本有问题 初步调整,无效,等待第二次调整。加油。
方案二是,删掉那个@Pointcut注解,替换为相同功能的代码。 ----------------0-----------0------------------ ----------------0-----------0------------------
8.##问题场景描述八
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'trackCounterConfig': Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: Pointcut is not well-formed: expecting '(' at character position 67 execution(**com.bert.concert..interfaces.CompackDisc.playTrack(int)) && args(trackNum)
##报错升级
error at ::0 formal unbound in pointcut ----------------0-----------0------------------ ----------------0-----------0------------------
9.##问题场景描述九 *报错信息: The type javax.servlet.ServletContext cannot be resolved. It is indirectly referenced from required .class *解决方式 根据报错信息能够知道,这是缺了一个包。该包的位置在我的计算机的Tomcat /lib文件下,添加到buildPath便可。
<h3>这些报错信息本来是直接记录在文本文档中的,而后就被我直接拷贝到这里了,也许你们搜罗解决方案时,会看到我这篇小博客</h3>