Spring:NoClassDefFoundError

时间:2016-11-12 22:13:47

标签: java spring maven

我试图重新安排我的pom.xml来解决我的应用程序中的一些问题,并且在运行Maven安装时出现了一个新错误:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [com/bloombooking/spring/PersistenceJPAConfig.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/tool/schema/spi/DelayedDropRegistry

我不知道我是如何搞砸了它来创造它,我无法在任何地方找到帮助...... 这是我的pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<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>com.bloombooking</groupId>
  <artifactId>bloombookingapi</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>bloombookingapi</name>
  <description></description>

  <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <java.version>1.8</java.version>
  </properties>

  <parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>1.4.2.RELEASE</version>
  </parent>

  <dependencies>

     <!-- Servlet api -->
     <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
     </dependency>

     <!-- Spring context -->
     <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.3.3.RELEASE</version>
     </dependency>
     <!-- Spring orm -->
     <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>4.3.3.RELEASE</version>
     </dependency>
     <!-- Spring boot web-->
     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
     </dependency>
     <!-- Spring boot test-->
     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
     </dependency>
     <!-- Spring boot jpa-->
     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
     </dependency>
     <!-- Spring jersey -->
     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jersey</artifactId>
     </dependency>

     <!-- Hibernate -->
     <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>5.1.0.Final</version>
     </dependency>

     <!-- PostgreSQL -->
     <dependency>
        <groupId>postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>9.1-901.jdbc4</version>
     </dependency>

     <!-- Log4j -->
     <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
     </dependency>

     <!-- Junit -->
     <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
     </dependency>

     <!-- Gson -->
     <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.3.1</version>
     </dependency>

     <!-- JavaMail -->
     <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4.7</version>
     </dependency>

     <!-- Jersey Java WS RS -->
     <dependency>
        <groupId>com.sun.jersey.contribs</groupId>
        <artifactId>jersey-multipart</artifactId>
        <version>1.19.2</version>
     </dependency>

     <!-- Apache commons codec (for easy SHA256 parsing) -->
     <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.4</version>
     </dependency>


  </dependencies>

  <build>
     <plugins>

        <!-- Maven compiler with java 1.8 -->
        <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
           <version>3.1</version>
           <configuration>
              <source>1.8</source>
              <target>1.8</target>
           </configuration>
        </plugin>
        <plugin>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
     </plugins>
  </build>

</project>

有人可以给我一些帮助吗? 感谢

1 个答案:

答案 0 :(得分:2)

您不必在pom.xml中为spring-context,spring-orm和hibernate-entitymanager指定依赖项,因为您使用的是Spring Boot starter web和jpa依赖项,它们将提取所需的jar文件。请清理你的pom文件。自5.1版以来,hibernate-core jar文件中提供了NoClassDefFoundError的类DelayedDropRegistry。检查您的本地maven存储库以获取hibernate-core jar文件和版本。你可以使用maven&gt;更新项目以更新依赖项并清理构建项目。希望这会有所帮助。