您的位置:首页 > 编程语言 > Java开发

spring整合hibernate,jar包冲突错误信息总结

2013-11-21 17:40 405 查看
Error one:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError:
org/apache/commons/pool/impl/GenericObjectPool

Caused by:

java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool

原因:

在夏昕写的spring开发指南里,如果学习使用dbcp配置的时候,可能会发生这样一个错误: 连数据库连接池的时候发生了java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool

该问题的产生是由于没有引入dbcp所依赖jar文件,看看apache官方的申明:“Commons-DBCP depends at runtime on commons-pool and commons-collections”。

解决方法:

在eclipse里面将这两个jar文件引入,ok,问题解决。

Error two:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mySessionFactory' defined in ServletContext resource [/WEB-INF/classes/applicationContext.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)

原因:

在使用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.2.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

自己的一个小测试: (运行环境:apache-tomcat-5.5.15 + .MyEclipse_5.5GA_E3.2.2 )

整合ssh项目中, 在 Tomcat 部署的环境中 D:/tomcat/webapps/my/WEB-INF/lib 发生了点异常:同时有 asm.jar、asm-attrs.jar、asm-2.2.3.jar 、 asm-commons-2.2.3.jar

asm-util-2.2.3.jar、 cglib-nodep-2.1_3.jar 在启动tomcat中不会出现异常信息。(我想asm-2.2.3jar可能在一定程度上作了改进。)

当 在D:/tomcat/webapps/my/WEB-INF/lib 下加入 cglib-2.1.3.jar 会报上面的java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit错误信息。 说明cglib-2.1.3.jar与其它包发生了冲突。

Error three:

at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:408)

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError:
net/sf/hibernate/Session

java.lang.NoClassDefFoundError: net/sf/hibernate/Session at java.lang.Class.getDeclaredMethods0(Native Method)

原因 :

在写dao 时,导入包出错了!

import org.springframework.orm.hibernate.support.HibernateDaoSupport;

解决方法:注意在导包时,要仔细了!

package com.jhl.dao;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.jhl.po.User;

public class UserDao extends HibernateDaoSupport {

public void save(User user) {

this.getHibernateTemplate().save(user);

}

}



Error four:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mySessionFactory' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError:
org/hibernate/cfg/HbmBinder$SecondPass

Caused by:

java.lang.NoClassDefFoundError: org/hibernate/cfg/HbmBinder$SecondPass

原因:hibernate3.jar和hibernate-annotations.jar)的问题。

解决方法:把hibernate-annotations.jar直接去掉就OK了!

总结:

运行环境:apache-tomcat-5.5.15 + .MyEclipse_5.5GA_E3.2.2

我觉得报以上种种的原因:主要是在spring version的选择上,最好选择 spring version 1,若选spring version 2(最容易报这样和那样的错了)

它下面的(spring1.2 AOP Libraries 、spring 1.2 Core Libraries、spring 1.2 ORM/DAO/Hibernate3Libraries、spring 1.2 Web Libraries)

struts1.2 + spring 1 + Hibernate3.1

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jihuanliang/archive/2008/04/22/2316223.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: