2017-11-27 1 views
0

Spring Initializr으로 새 Spring REST API를 만들고 JPA, Lombok, PostgreSQL 및 Spring Web을 추가했습니다.스프링 데이터 entityManagerFactory NoClassDefFoundError

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628) ~[spring-beans-4.3.12.RELEASE.jar!/:4.3.12.RELEASE] 

내가이 관련 자료를 많이 찾을 수 있지만, 그들 중 누구도 나를 위해이 문제를 해결하기 위해 같았다 : 슬프게도 나는 시작시 다음과 같은 오류가 발생합니다. 내가 뭘 놓치고 있니?

은 여기 내 구성의 일부 :

StarterApplication.java

@SpringBootApplication 
public class StarterApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(StarterApplication.class, args); 
    } 
} 

application.properties

spring.datasource.url=jdbc:postgresql://localhost:5432/springapi 
spring.datasource.username=postgres 
spring.datasource.password=postgres 
spring.jpa.hibernate.ddl-auto=create-drop 
spring.datasource.driverClassName=org.postgresql.Driver 

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>design.kde</groupId> 
    <artifactId>starter</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 
    <name>starter</name> 
    <description>Demo project for Spring Boot</description> 
    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.8.RELEASE</version> 
     <relativePath/> 
     <!-- lookup parent from repository --> 
    </parent> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.postgresql</groupId> 
      <artifactId>postgresql</artifactId> 
      <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.projectlombok</groupId> 
      <artifactId>lombok</artifactId> 
      <optional>true</optional> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

아마도 구성 단계가 누락 되었습니까?

+1

Java 9를 사용하고 있습니까? – Stefan

+0

'spring.datasource.driverClassName = org.postgresql.Driver'를 제거하고 다시 시도하십시오. –

+0

Java 9를 사용하고 있으며 해당 행을 제거해도 출력이 전혀 변경되지 않습니다. –

답변

1

아마도 Java 9를 사용하고 pom.xml에 다음 종속성을 추가하면 도움이 될 것입니다.

<dependency> 
    <groupId>javax.xml.bind</groupId> 
    <artifactId>jaxb-api</artifactId> 
    <version>2.3.0</version> 
</dependency> 
+0

Java 9를 사용하여 Spring 2.0으로 전환하면 호환성이 있다고 생각했지만 아직 그렇지 않습니다. 이 특정 응용 프로그램을 컴파일하기 위해 Java 8로 다시 전환했습니다. –

관련 문제