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)
原因:
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
asm-attrs.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