ssh框架整合-NoClassDefFoundError-NoSuchMethodError-遁地龙卷风
Posted 遁地龙卷风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,找到你想要的就可以了。
以上是关于ssh框架整合-NoClassDefFoundError-NoSuchMethodError-遁地龙卷风的主要内容,如果未能解决你的问题,请参考以下文章