Java.lang.NoClassDefFoundError:[Lorg / hibernate / engine / FilterDefinition;运行Spring4.x和Hibernate 4.x Webapp时遇到异常

时间:2016-09-28 11:25:54

标签: spring hibernate

- 我正在尝试使用Eclipse Mars IDE中的Tomcat7和Java 8运行Spring 4.x,Hibernate 4.x Web应用程序。 这是一个基本的webapp,它将使用SpringMVC,Hibernate和Maven在SQL数据库中插入值。

- 启动tomcat时遇到异常:Java.lang.NoClassDefFoundError:[Lorg / hibernate / engine / FilterDefinition。

- 我尝试在线搜索解决方案,并找到了要解决此异常的配置,这在我的代码中已经存在。 解决方案说在dispatcher-servlet xml文件中为sessionFactory和transactionManger使用以下配置。

  1. <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">

  2. <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">

  3. - 要检查它的jar兼容性问题是否真的遇到并试用了许多Spring4和Hibernate4版本的组合,比如Hibernate Version:4.3.5.Final和Spring 4.0.3.RELEASE。

    - 由于它给出NoClassDefFoundError我在Hibernate-Core jar中检查过。 FilterDefinition类在上述路径中不可用,并且在hibernate-core-4.3.5.Final.zip\org\hibernate\engine\spi路径中可用。所以可能会出现这种异常。

    - 请告诉我如何避免此异常。

    pom.xml
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
        http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    
      <modelVersion>4.0.0</modelVersion>
      <groupId>MavenWeb</groupId>
      <artifactId>MavenWeb</artifactId>
      <packaging>war</packaging>
      <version>0.0.1-SNAPSHOT</version>
    
    
    <properties>
    <java.version>1.6</java.version>
    
    <org.springframework-version>4.0.3.RELEASE</org.springframework-version>
    
    <hibernate.version>3.6.9.Final</hibernate.version>
    
    <slf4j.version>1.7.5</slf4j.version>
    </properties>
    
    <dependencies>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${org.springframework-version}</version>
    </dependency>
    
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${org.springframework-version}</version>
    </dependency>
    
    <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>${org.springframework-version}</version>
            </dependency>
    
    
    
            <!-- Spring ORM support -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-orm</artifactId>
                <version>${org.springframework-version}</version>
            </dependency>
    
    
    
            <!-- Logging with SLF4J-->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
                <scope>compile</scope>
            </dependency>
    
    
    
    
            <!-- Hibernate -->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-entitymanager</artifactId>
                <version>${hibernate.version}</version>
            </dependency>
    
    
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>${hibernate.version}</version>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.9</version>
            </dependency>
            <dependency>
                <groupId>commons-dbcp</groupId>
                <artifactId>commons-dbcp</artifactId>
                <version>1.4</version>
            </dependency>
    
    
    <!-- for compilation -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.1</version>
        <scope>provided</scope>
    </dependency>
    
    
    <!-- jstl dependency -->
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
    
    </dependencies>
    
    </project>
    

0 个答案:

没有答案