ASM沖突的問題

          原文:http://www.cnblogs.com/xuwenyan/archive/2008/07/14/1242487.html
          網上找了很多,只有這個才行
          你在加的時候按這個順序來加Struts--Spring--Hibernate,有重復包的時候不要替換就沒問題了
          方法一:
          在使用Spring的AOP編程時,會用到這幾個lib:
          asm-2.2.2.jar
          asm-commons-2.2.2.jar
          asm-util-2.2.2.jar

          Hibernate使用如果lib:
          asm.jar
          asm-attrs.jar


          其中asm-2.2.2.jar與asm.jar存在類上的沖突!!!
          使用其中之一或兩者都使用,可能會出現如下錯誤:
          java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
          java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
          java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit。。。。。。


          解決辦法是:
          1.去掉類路徑上的關于Hibernate的3個lib
          asm.jar
          asm-attrs.jar
          cglib-2.1.3.jar

          2.加入Spring中的以下4個lib
          asm-2.2.2.jar
          asm-commons-2.2.2.jar
          asm-util-2.2.2.jar
          cglib-nodep-2.1_3.jar





          方法二:
          在使用Spring的AOP編程時,會用到這幾個lib:
          asm-2.2.2.jar
          asm-commons-2.2.2.jar
          asm-util-2.2.2.jar

          Hibernate使用如果lib:
          asm.jarasm-attrs.jar
          其中asm-2.2.2.jar與asm.jar存在類上的沖突。
          使用其中之一或兩者都使用,可能會出現如下錯誤: java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitorjava.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitorjava.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit

          下面是解決方法手工編輯你的.classpath文件,比如我這個(只有部分內容)

          <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_CORE"/>
          <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_DAO"/>
          <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_AOP"/>
          <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_WEB"/>
          <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.hibernate.MYECLIPSE_HIBERNATE3_1_CORE"/>
          <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mysql-connector-java-5.0.4-bin.jar"/>

          將最后2行hibernate和mysql驅動,手工復制到springframework的lib前面。
          <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.hibernate.MYECLIPSE_HIBERNATE3_1_CORE"/>
          <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mysql-connector-java-5.0.4-bin.jar"/>
          <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_CORE"/>
          <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_DAO"/>
          <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_AOP"/>
          <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_WEB"/>

          現在你再試試啟動,應該不會報錯了。

          我這里用了myeclipse的jar包。如果你是自定義用戶庫jar包,那么只要保證spring的jar包在hibernate之后加載,項目在部署的時候spring的jar包就會覆蓋掉hibernate的jar包。

          posted on 2008-09-05 14:33 藍槐 閱讀(115) 評論(0)  編輯  收藏 所屬分類: java


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2008年9月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          搜索

          最新評論

          主站蜘蛛池模板: 乌兰察布市| 大兴区| 沙坪坝区| 北安市| 四子王旗| 长阳| 东城区| 湖北省| 开封县| 孝义市| 咸宁市| 黑山县| 武宣县| 敦煌市| 北辰区| 土默特左旗| 策勒县| 巴马| 富裕县| 辽阳县| 新巴尔虎右旗| 孝义市| 曲阳县| 屯门区| 江津市| 梅河口市| 祁门县| 博野县| 南木林县| 内乡县| 赣榆县| 会东县| 玉山县| 台中县| 鄂州市| 贵南县| 红桥区| 临海市| 宁化县| 射洪县| 合阳县|