溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時(shí)注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          雪山飛鵠

          溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時(shí)注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks

          溫馨提示:
                  以下異常僅在Spring3.0.3版本中遇到,其他版本可能也會(huì)遇到,讀者可作參考。不保證會(huì)順利通過。
                  近期在學(xué)習(xí)Spring3的一些新特性,一般在項(xiàng)目開發(fā)中為了方便期間,都是借助myeclipse工具來添加ssh支持,很少手動(dòng)添jar包。這里想自虐一下,體驗(yàn)一下jar包沖突或找不到類的那種感覺,在此也將在Spring3.0中AOP開發(fā)過程中遇到的異常什么的記錄出來,可以方便更多人,快速定位錯(cuò)誤。

          第一個(gè)異常
          java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
          有過開發(fā)經(jīng)驗(yàn)的一眼就可以看出,這是缺少commons-logging.jar包,因?yàn)閟pring中使用它來記錄日志,而spring3.0.3這個(gè)版本中并沒有該jar,自行到apache網(wǎng)站下載添加該jar即可

          第二個(gè)異常
          在使用AOP的注解時(shí)需要用到aopalliance.jar 、aspectjrt.jar 、aspectjweaver.jar,而此三個(gè)jar包并未在spring3.0.3的發(fā)布中提供需要開發(fā)者自行添加

          第三個(gè)異常
          org.springframework.aop.framework.AopConfigException: Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the class path or specify proxy interfaces
          從異常信息可以看出是cglib的問題,而我們?nèi)z查項(xiàng)目,卻發(fā)現(xiàn)項(xiàng)目中并未cglib的jar,那么你可能想到的是缺少cglib這個(gè)jar包,沒錯(cuò),你的思路是正確的,你具有做javaee開發(fā)的思維,添加cglib-2.2.jar即可
          第四個(gè)異常,這也是開發(fā)中每個(gè)人都會(huì)遇到的一個(gè)異常,堪稱ssh開發(fā)中的經(jīng)典,如果你是一位技術(shù)主管,那么你可以同過此異常去考查一個(gè)新人,一看便知,他有沒有javaee開發(fā)經(jīng)驗(yàn)。呵呵,廢話這么多了,不知道你有沒有猜到是什么了。還是我來告訴你吧,那就是經(jīng)典的asm.jar包沖突,你的答案正確嗎?不正確,沒關(guān)系,你只要記下如何解決就可以了,這個(gè)異常保證你在工作中遇到或在面試中問到,那么它的重要性可想而知了。

          下面分環(huán)境來介紹該jar包沖突的解決方案。

          在spring3.0以下的環(huán)境中(適應(yīng)于ssh),若出現(xiàn)該jar包沖突,你需要?jiǎng)h除帶版本號(hào)的那個(gè)asm.jar,而保留不帶版本號(hào)的那個(gè)asm.jar即可

          在spring3.0的環(huán)境中,大家仔細(xì)檢查的話發(fā)現(xiàn)spring也帶了一個(gè)名為org.springframework.asm-3.0.3.RELEASE.jar的jar包,而在開發(fā)中僅僅使用這個(gè)jar包還是不夠的,你還需要額外的去添加asm.jar,那么這個(gè)asm.jar到底是那個(gè)版本了?用大腿想想?記得胡叔叔上臺(tái)的時(shí)候提過與時(shí)俱進(jìn)這個(gè)詞,呵呵,人家是說政治的,我這是說開發(fā)的,既然spring是3.0的版本,那么asm.jar這個(gè)jar包版本肯定也是3.0以上版本啦,要與時(shí)俱進(jìn)嘛。下載地址http://forge.ow2.org/projects/asm/ 我們會(huì)看到一個(gè)3.3的版本。
          可能見到的異常信息
           java.lang.NoClassDefFoundError: org/objectweb/asm/Type
          org.objectweb.asm.ClassVisitor.visit
          asm3.3.jar,你值得擁有!

          posted on 2010-10-29 09:46 雪山飛鵠 閱讀(4950) 評(píng)論(3)  編輯  收藏 所屬分類: spring

          Feedback

          # re: Spring3.0.3使用之異常解決 2010-10-29 10:29 @joe
          不建議現(xiàn)在的應(yīng)用立即升級(jí)到spring3.0 除非你知道spring3.0的變化明細(xì)。  回復(fù)  更多評(píng)論
            

          # re: Spring3.0.3使用之異常解決 2010-10-29 10:38 雪山飛鵠
          @@joe
          呵呵
          被spring3.0的新特性吸引了,確實(shí)3.0的spring問題很多,最大的差異就是依賴的jar包沒列出來,使用中jar包沖突和找不到類的異常頻發(fā),沒以前2.X系列的spring好用  回復(fù)  更多評(píng)論
            

          # re: Spring3.0.3使用之異常解決 2011-03-18 15:21 jungle
          非常好 謝謝!!
          下了個(gè)asm3.3.jar就可以了!  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 莱州市| 乌恰县| 富川| 鲁甸县| 海城市| 贵德县| 安西县| 南宁市| 大足县| 顺昌县| 淮安市| 巩义市| 鄂伦春自治旗| 同仁县| 新丰县| 瑞安市| 巴马| 洛阳市| 陕西省| 凌源市| 定陶县| 武威市| 杭州市| 普安县| 镇坪县| 克什克腾旗| 星子县| 西华县| 威远县| 福贡县| 苏尼特右旗| 大田县| 南京市| 潜山县| 铁岭市| 察哈| 揭阳市| 德清县| 青龙| 荣昌县| 甘南县|