Java 升级到hibernate 4和spring 4 jars,但仍获得org.hibernate.engine.FilterDefinition classnotfoundexception

Java 升级到hibernate 4和spring 4 jars,但仍获得org.hibernate.engine.FilterDefinition classnotfoundexception,java,spring,hibernate,spring-mvc,jpa,Java,Spring,Hibernate,Spring Mvc,Jpa,我正在尝试升级到hibernate4.3.8和spring4.1.6版本。当我试图初始化上下文时,得到如下异常 Caused by: java.lang.NoClassDefFoundError: [Lorg/hibernate/engine/FilterDefinition; at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.7.0_80] at java.lang.Class.privateGetDecl

我正在尝试升级到
hibernate4.3.8
spring4.1.6
版本。当我试图初始化上下文时,得到如下异常

Caused by: java.lang.NoClassDefFoundError: [Lorg/hibernate/engine/FilterDefinition;
    at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.7.0_80]
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2625) ~[na:1.7.0_80]
    at java.lang.Class.getDeclaredMethods(Class.java:1868) ~[na:1.7.0_80]
    at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:571) ~[spring-core-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:488) ~[spring-core-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:501) ~[spring-core-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:474) ~[spring-core-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:241) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineConstructorsFromBeanPostProcessors(AbstractAutowireCapableBeanFactory.java:1065) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1038) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getSingletonFactoryBeanForTypeCheck(AbstractAutowireCapableBeanFactory.java:860) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:790) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:542) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:436) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:412) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:186) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1105) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1044) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:942) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:533) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
    ... 29 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.hibernate.engine.FilterDefinition
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) ~[catalina.jar:7.0.59]
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) ~[catalina.jar:7.0.59]
    ... 49 common frames omitted
罐子清单

spring-aop-4.1.6.RELEASE.jar spring-data-jpa-1.2.0.RELEASE.jar, spring-security-web-4.0.1.RELEASE.jar,spring-aspects-4.1.6.RELEASE.jar,spring-expression-4.1.6.RELEASE.jar,spring-test-4.1.6.RELEASE.jar,spring-batch-core-2.1.7.RELEASE.jar,spring-jdbc-4.1.6.RELEASE.jar,spring-tx-4.1.6.RELEASE.jar,spring-beans-4.1.6.RELEASE.jar,spring-oxm-4.1.6.RELEASE.jar,spring-webmvc-4.1.6.RELEASE.jar,spring-context-4.1.6.RELEASE.jar,spring-security-acl-4.0.1.RELEASE.jar,spring-webmvc-portlet-4.1.6.RELEASE.jar,spring-context-support-4.1.6.RELEASE.jar,spring-security-config-4.0.1.1.RELEASE.jar,spring-ws-core-core-2.1.3.jar,spring-core-core.jar,spring-security-core-4.0.1.RELEASE.jar,spring-xml-2.1.3.RELEASE.jar,spring-data-commons-core-1.4.0.RELEASE.jar,spring-security-taglibs-4.0.1.RELEASE.jar hibernate-c3p0-4.3.8.Final.jar hibernate-envers-4.3.8.Final.jar hibernate-search-engine-4.5.3.Final.jar hibernate-commons-annotations-4.0.5.Final.jar
hibernate-jpa-2.1-api-1.0.0.Final.jar
hibernate-search-orm-4.5.3.Final.jar hibernate-core-4.3.8.Final.jar hibernate-jpamodelgen-4.3.8.Final.jar
hibernate-validator-5.1.3.Final.jar hibernate-ehcache-4.3.8.Final.jar hibernate-search-4.5.3.Final.jar hibernate-entitymanager-4.3.8.Final.jar
hibernate-search-analyzers-4.5.3.Final.jar


问题的解决方案

  • 类路径中可能缺少hibernate-core-4.3.8.Final.jar。它具有FilterDefinition类
  • 如果使用Maven,请在POM.xml文件中添加此依赖项

    <dependency>
     <groupId>org.hibernate</groupId>
     <artifactId>hibernate-core</artifactId>
     <version>4.3.8.Final</version>
    </dependency>
    
    
    org.hibernate
    冬眠核心
    4.3.8.最终版本
    

  • @Gowtham可能重复,请检查此异常是否仍然存在。问题仍然存在。我在sessionFactory的属性文件org.springframework.orm.hibernate4.LocalSessionFactoryBean和事务管理器的属性文件org.springframework.orm.hibernate4.LocalSessionFactoryBean中添加了hibernate-core-4.3.8.Final.jar和spring-orm-4.1.6.RELEASE.jar。@Gowtham,请确保您只在类路径中添加了SpringFramework 4.1.6 BOM表()jar文件。是的,我已在类路径中添加了所有依赖项。您必须使用LocalSessionFactoryBean与Hibernate集成,对于事务,您必须使用HibernateTransactionManager。下面的链接()就是一个很好的例子