2017-11-27 1 views
0

Spring Initializrで新しいSpring REST APIを作成し、JPA、Lombok、PostgreSQL、Spring Webを追加しました。私はこれに関連した材料の多くを見つけることができるSpringデータエンティティマネージャファクトリ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に切り替えました。 –