程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> ssh框架整合-NoClassDefFoundError-NoSuchMethodError-遁地龍卷風,遁地龍卷風

ssh框架整合-NoClassDefFoundError-NoSuchMethodError-遁地龍卷風,遁地龍卷風

編輯:JAVA綜合教程

ssh框架整合-NoClassDefFoundError-NoSuchMethodError-遁地龍卷風,遁地龍卷風


(-1)寫在前面

      spring2.0、struts1.2、hibernate3.0、myeclipse8.5、tomcat6.0,整合之中出現了很多問題,前幾天忙著整理畢業論文的資料,時間騰出來了,總算有能寫的東西。話說這宿捨的人少了,蚊子的選擇也少了。

(0)詳細解釋

a.錯誤產生的原因

java.lang.NoSuchMethodError、 java.lang.NoClassDefFoundError,類似於這種類型的錯誤是因為框架間jar包沖突了。

b.解決方式

已java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit為例,是因為spring2.0和hibernate3.0都有asm這個jar包。

第一種:區發布項目的tomcat根目錄下,進入webapps,進入你的項目,WEN-INF->lib下,找到asm.jar刪掉即可。第一次發布項目後,以後的項目發布時不會跟新lib裡的jar包

第二種:關閉服務器,去tomcat跟目錄下的webapps裡刪除你的項目(否則即便執行後續的行為,再次發布項目lib裡的jar包也不會更新),

如果 你的jar包在myeclipse中放在WEB-INF\lib下,找到後刪除就好(我用的是build path,不是自己導的包,可能在spring 2.0 AOP libraries裡),

如果你是用buildpath方式引用的jar包,點擊myeclipse的Windows,點擊preference,左邊依次點擊MyEclipse->ProjectCapabilities->Spring,

在右邊選擇Spring2.0,下拉選框選擇spring 2.0 AOP libraries(我的默認就是),找到asm.jar(我這裡是asm-2.2.3.jar),移除即可,然後重新啟動服務器,發布項目。如下圖所示:

 

(2)恢復移除的jar包

移除buildpath中的jar包是有隱患的,以前面移除的asm.jar為例,點擊myeclipse的Windows,點擊preference,左邊依次點擊MyEclipse->ProjectCapabilities->Spring,在右邊選擇Spring2.0,進入後隨便點擊一個jar包,點擊Add JAR/ZIP,如果你發現地址欄出現\data\2.0\lib\aopalliance這樣的片段,你一定想到了,lib目錄下有spring2.0全部的jar,找到你想要的就可以了。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved