博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
再遇asm问题
阅读量:7166 次
发布时间:2019-06-29

本文共 2162 字,大约阅读时间需要 7 分钟。

   以前遇到过这个问题,今天再次遇到,又有了点新的收获。还是先看看问题吧,在SSH项目中,启动tomcat时报错:
严重: Exception sending context initialized event to listener instance of class    


org.springframework.web.context.ContextLoaderListener 

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file    


[D:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ShoppingCart\WEB-INF\classes\applicationContext-beans.xml]:    


Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit 


(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V 

Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String; 


[Ljava/lang/String;Ljava/lang/String;)V 

  at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77) 

  at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:173) 

  at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25) 

  at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
 
    
记得以前遇到过这个问题,当时就把我折腾得够呛。后来,发现了问题的所在(由于Spring中的“asm-2.2.3.jar”和Hibernate中的“asm.jar”包冲突),也就很容易就解决了(移除Spring AOP Libraries中的“asm-2.2.3.jar”即可)。由于当时使用的是我自建的User Libraries类库,所以操作上很简单,
Window-->Preferences-->Java-->Build Path-->User Libraries-->
找到自己建的spring库中的asm-2.2.3.jar,"remove"掉即可。
 
   可是几天我使用的是myeclipse自带的类库,怎么能随便编辑IDE自带的类库呢?!开始我觉得不太现实,可最终试出了一个办法,还真能办到:
myeclipse-->Preferences-->MyEclipse EnterpriseWorkbench-->Project Capabilities-->Spring-->Spring2.5-->Spring2.5 AOP Libraries-->
找到asm-2.2.3.jar,"remove"掉。本来很得意,可重启了tomcat发现问题依旧!我又把spring的asm-2.2.3.jar添加上,而把hibernate的asm.jar去掉,问题依旧!
 
    最后,翻了半天资料,原来是cglib包要用到asm包,我发现spring2.5 AOP Libraries里有个cglib-nodep-2.1_3.jar和hibernate3.2 Core Libraries里都有个cglib-2.1.3.jar,问题的根肯定是cglib和asm的版本对应上,而不只在asm!于是,我把hibernate中所有和cglib,asm有关的三个包asm.jar,asm-attrs.jar,cglib-2.1.3.jar都"remove"掉,而只保留spring中的这些包。重启tomcat,问题解决!
 
    当然,知道了问题的所在,解决途径可能不唯一,不过关于SSH包版本的问题耽误这么多功夫,我觉得实在不应该。既然大家是协同工作的,在各自版本升级的过程中,为什么就不能协调一下呢?可能是缺乏这样的国际组织,又或是其它?在此轻声的呼吁一小下下,嘎嘎。
     本文转自NightWolves 51CTO博客,原文链接:
http://blog.51cto.com/yangfei520/309119
,如需转载请自行联系原作者
你可能感兴趣的文章
设置Linux内核参数 /etc/sysctl.conf
查看>>
超简单jquery tab切换
查看>>
Nagios(五)——配置PNP图表分析
查看>>
系统集成项目管理工程师真题模拟上午题(3套)
查看>>
pnp4nagios的安装配置
查看>>
OrbitDB-Peer 2 Peer Database using CRDTs
查看>>
全屏状态下层级问题(z-index)
查看>>
Using a SecureCRT 链接远程主机
查看>>
python写的好的博客链接
查看>>
linux shell wait process finished,等待线程执行结束
查看>>
MySQL内存表的特性与使用介绍
查看>>
男人帮,帮男人找爱情
查看>>
linux添加HIVE环境变量
查看>>
Secure Delivery Center快速入门指南(二):交付软件包
查看>>
MyEclipse Spring开发教程:使用基本的Spring功能(三)
查看>>
算法训练 未名湖边的烦恼
查看>>
数据库的备份和恢复
查看>>
2019假期作业(一)
查看>>
1.登陆一下好吗??
查看>>
java集合
查看>>