【Spring in Action 4】 【Bugs && Solutions】九九歸一表

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

  1. ##問題場景描述四: 提示信息是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>

相關文章
相關標籤/搜索