Spring4.0+Hibernate4.2.整合出现java.lang.ClassNotFoundException: org.hibernate.engine.FilterDefinition

1. 异常

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'newsDao' defined in class path resource [bean.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [bean.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: [Lorg/hibernate/engine/FilterDefinition;

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [bean.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: [Lorg/hibernate/engine/FilterDefinition;

Caused by: java.lang.NoClassDefFoundError: [Lorg/hibernate/engine/FilterDefinition;


Caused by: java.lang.ClassNotFoundException: org.hibernate.engine.FilterDefinition

2.分析

根据Caused by: java.lang.ClassNotFoundException: org.hibernate.engine.FilterDefinition

      这句话,初步猜测是少jar包,于是到Spring4.0+Hibernate4.2.整合出现java.lang.ClassNotFoundException: org.hibernate.engine.FilterDefinition_第1张图片这个jar包下寻找,但是没有。

     于是到网上寻找答案,但是也没有什么进展。

     突然间想到,我的bean.xml的一部分是从官方文档中复制的,是不是问题出现在这里。

	
		
		
			
				com/bean/User.hbm.xml
			
		
		
			
				org.hibernate.dialect.MySQL5InnoDBDialect
				true
				update
				true
			
		
	

其中,class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"引起了我的注意,由于我用的是Spring4,,但是这里却出现3,于是修改成class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"

3.结果

    insert 
    into
        bzh
        (name, address) 
    values
        (?, ?)
已经存入数据库

你可能感兴趣的:(Spring4.0+Hibernate4.2.整合出现java.lang.ClassNotFoundException: org.hibernate.engine.FilterDefinition)