溫馨提示:
以下異常僅在Spring3.0.3版本中遇到,其他版本可能也會(huì)遇到,讀者可作參考。不保證會(huì)順利通過(guò)。
近期在學(xué)習(xí)Spring3的一些新特性,一般在項(xiàng)目開(kāi)發(fā)中為了方便期間,都是借助myeclipse工具來(lái)添加ssh支持,很少手動(dòng)添jar包。這里想自虐一下,體驗(yàn)一下jar包沖突或找不到類的那種感覺(jué),在此也將在Spring3.0中AOP開(kāi)發(fā)過(guò)程中遇到的異常什么的記錄出來(lái),可以方便更多人,快速定位錯(cuò)誤。
第一個(gè)異常
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
有過(guò)開(kāi)發(fā)經(jīng)驗(yàn)的一眼就可以看出,這是缺少commons-logging.jar包,因?yàn)閟pring中使用它來(lái)記錄日志,而spring3.0.3這個(gè)版本中并沒(méi)有該jar,自行到apache網(wǎng)站下載添加該jar即可
第二個(gè)異常
在使用AOP的注解時(shí)需要用到aopalliance.jar 、aspectjrt.jar 、aspectjweaver.jar,而此三個(gè)jar包并未在spring3.0.3的發(fā)布中提供需要開(kāi)發(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的問(wèn)題,而我們?nèi)z查項(xiàng)目,卻發(fā)現(xiàn)項(xiàng)目中并未cglib的jar,那么你可能想到的是缺少cglib這個(gè)jar包,沒(méi)錯(cuò),你的思路是正確的,你具有做javaee開(kāi)發(fā)的思維,添加cglib-2.2.jar即可
第四個(gè)異常,這也是開(kāi)發(fā)中每個(gè)人都會(huì)遇到的一個(gè)異常,堪稱ssh開(kāi)發(fā)中的經(jīng)典,如果你是一位技術(shù)主管,那么你可以同過(guò)此異常去考查一個(gè)新人,一看便知,他有沒(méi)有javaee開(kāi)發(fā)經(jīng)驗(yàn)。呵呵,廢話這么多了,不知道你有沒(méi)有猜到是什么了。還是我來(lái)告訴你吧,那就是經(jīng)典的asm.jar包沖突,你的答案正確嗎?不正確,沒(méi)關(guān)系,你只要記下如何解決就可以了,這個(gè)異常保證你在工作中遇到或在面試中問(wèn)到,那么它的重要性可想而知了。
下面分環(huán)境來(lái)介紹該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包,而在開(kāi)發(fā)中僅僅使用這個(gè)jar包還是不夠的,你還需要額外的去添加asm.jar,那么這個(gè)asm.jar到底是那個(gè)版本了?用大腿想想?記得胡叔叔上臺(tái)的時(shí)候提過(guò)與時(shí)俱進(jìn)這個(gè)詞,呵呵,人家是說(shuō)政治的,我這是說(shuō)開(kāi)發(fā)的,既然spring是3.0的版本,那么asm.jar這個(gè)jar包版本肯定也是3.0以上版本啦,要與時(shí)俱進(jìn)嘛。下載地址http://forge.ow2.org/projects/asm/ 我們會(huì)看到一個(gè)3.3的版本。
可能見(jiàn)到的異常信息
java.lang.NoClassDefFoundError: org/objectweb/asm/Type
org.objectweb.asm.ClassVisitor.visit
asm3.3.jar,你值得擁有!
Feedback
@@joe
呵呵
被spring3.0的新特性吸引了,確實(shí)3.0的spring問(wèn)題很多,最大的差異就是依賴的jar包沒(méi)列出來(lái),使用中jar包沖突和找不到類的異常頻發(fā),沒(méi)以前2.X系列的spring好用 回復(fù) 更多評(píng)論
呵呵
被spring3.0的新特性吸引了,確實(shí)3.0的spring問(wèn)題很多,最大的差異就是依賴的jar包沒(méi)列出來(lái),使用中jar包沖突和找不到類的異常頻發(fā),沒(méi)以前2.X系列的spring好用 回復(fù) 更多評(píng)論
只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問(wèn)
管理
|
||
相關(guān)文章:
|
||