2016-07-26 14 views
3

Ich habe eine ziemlich einfache Spring Boot 1.3 App und ich versuche, auf 1.4 RC1 zu aktualisieren. Es gibt nichts, was nicht aus der Box Konfiguration ist. Wenn ich versuche, und die App oder laufen Tests starten, erhalte ich die folgende:AbstractMethodError ausgelöst von org.hibernate.internal.SessionFactoryImpl. <init> beim Upgrade von Spring Boot 1.3 auf 1.4 RC1

12:06:27.237 [QUIET] [system.out] 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.AbstractMethodError 
12:06:27.237 [QUIET] [system.out] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE] 
12:06:27.237 [QUIET] [system.out] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE] 
12:06:27.237 [QUIET] [system.out] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE] 
12:06:27.237 [QUIET] [system.out] at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE] 
12:06:27.237 [QUIET] [system.out] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE] 
12:06:27.238 [QUIET] [system.out] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE] 
12:06:27.238 [QUIET] [system.out] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE] 
12:06:27.238 [QUIET] [system.out] at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1076) ~[spring-context-4.3.1.RELEASE.jar:4.3.1.RELEASE] 
12:06:27.238 [QUIET] [system.out] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:851) ~[spring-context-4.3.1.RELEASE.jar:4.3.1.RELEASE] 
12:06:27.238 [QUIET] [system.out] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) ~[spring-context-4.3.1.RELEASE.jar:4.3.1.RELEASE] 
12:06:27.238 [QUIET] [system.out] at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.4.0.RC1.jar:1.4.0.RC1] 
12:06:27.238 [QUIET] [system.out] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) [spring-boot-1.4.0.RC1.jar:1.4.0.RC1] 
12:06:27.238 [QUIET] [system.out] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:369) [spring-boot-1.4.0.RC1.jar:1.4.0.RC1] 
12:06:27.238 [QUIET] [system.out] at org.springframework.boot.SpringApplication.run(SpringApplication.java:313) [spring-boot-1.4.0.RC1.jar:1.4.0.RC1] 
12:06:27.238 [QUIET] [system.out] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1185) [spring-boot-1.4.0.RC1.jar:1.4.0.RC1] 
12:06:27.238 [QUIET] [system.out] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1174) [spring-boot-1.4.0.RC1.jar:1.4.0.RC1] 
12:06:27.239 [QUIET] [system.out] at com.hightouchinc.notifications.NotificationsApplication.main(NotificationsApplication.java:17) [main/:na] 
12:06:27.239 [QUIET] [system.out] Caused by: java.lang.AbstractMethodError: null 
12:06:27.239 [QUIET] [system.out] at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:278) ~[hibernate-core-5.0.9.Final.jar:5.0.9.Final] 
12:06:27.239 [QUIET] [system.out] at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:444) ~[hibernate-core-5.0.9.Final.jar:5.0.9.Final] 
12:06:27.239 [QUIET] [system.out] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:879) ~[hibernate-entitymanager-5.0.9.Final.jar:5.0.9.Final] 
12:06:27.239 [QUIET] [system.out] at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60) ~[spring-orm-4.3.1.RELEASE.jar:4.3.1.RELEASE] 
12:06:27.239 [QUIET] [system.out] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:338) ~[spring-orm-4.3.1.RELEASE.jar:4.3.1.RELEASE] 
12:06:27.239 [QUIET] [system.out] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:373) ~[spring-orm-4.3.1.RELEASE.jar:4.3.1.RELEASE] 
12:06:27.239 [QUIET] [system.out] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:362) ~[spring-orm-4.3.1.RELEASE.jar:4.3.1.RELEASE] 
12:06:27.239 [QUIET] [system.out] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE] 
12:06:27.239 [QUIET] [system.out] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) ~[spring-beans-4.3.1.RELEASE.jar:4.3.1.RELEASE] 
12:06:27.240 [QUIET] [system.out] ... 16 common frames omitted 

wie Meine Einstiegspunkt Klasse aussieht:

@SpringBootApplication 
public class NotificationsApplication { 

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

wie Meine Datenbank Config sieht:

spring: 
    datasource: 
    url: jdbc:postgresql://localhost:5432/notifications 
    username: ---- 
    password: ---- 
    driverClassName: org.postgresql.Driver 
    jpa: 
    properties: 
     hibernate: 
     format_sql: true 
    database-platform: org.hibernate.dialect.PostgreSQLDialect 
    hibernate: 
     ddl-auto: create-drop 
    generate-ddl: true 

Ich habe alle Changelogs für die 1.4 Milestones und RC1 gelesen und kann nichts finden, was darauf hindeutet, dass etwas verändert wurde, damit es nicht startet.

Abhängigkeiten von build.gradle:

dependencies { 
    compile('org.springframework.boot:spring-boot-starter-data-jpa') 
    compile('org.springframework.boot:spring-boot-starter-actuator') 
    compile('org.springframework.boot:spring-boot-starter-web') 
    compile('org.springframework:spring-tx') 
    compile('javax.el:javax.el-api:3.0.0') 
    compile('com.google.guava:guava:19.0') 
    compile('com.fasterxml.jackson.datatype:jackson-datatype-hibernate5:2.8.1') 
    compile("com.fasterxml.jackson.datatype:jackson-datatype-joda:2.7.5") 
    compile('joda-time:joda-time:2.9.4') 
    compile('org.jadira.usertype:usertype.core:4.0.0.GA') 
    compile('com.h2database:h2') 
    runtime('org.postgresql:postgresql:9.4.1208') 
    testCompile('junit:junit') 
    testCompile('org.springframework.boot:spring-boot-starter-test') 
    testCompile('com.jayway.jsonpath:json-path') 
} 
+0

Haben Sie etwas sonst, das ist Hibernate-bezogen auf den Klassenpfad? Die fehlgeschlagene Zeile versucht "integrate" auf einem "org.hibernate.integrator.spi.Integrator" zu nennen, dessen Signatur sich in 5.0 geändert hat. –

+0

Ich habe die Frage mit meinen build.gradle Abhängigkeiten aktualisiert. – Gregg

+0

Ich hatte Probleme mit Spring Boot und Guave, haben Sie den Abhängigkeitsbaum angeschaut und sehen, ob es mehr als eine Version von Guave auf dem Klassenpfad gibt –

Antwort

4

denke ich, dass das Problem diese Abhängigkeit:

compile('org.jadira.usertype:usertype.core:4.0.0.GA') 

Es enthält drei Klassen, die org.hibernate.integrator.spi.Integrator implementieren:

  • UserTypeJodaTimeHibernateIntegrator
  • UserTypeJodaMoneyHibernateIntegrator
  • UserTypeLegacyJdkMoneyHibernateIntegrator

Die 5.0.0.GA Freisetzung von Jadira contains a change dass "Fixed Integrator Verhalten unter Hibernate 5", so dass es wie Upgrade sieht das Problem beheben:

compile('org.jadira.usertype:usertype.core:5.0.0.GA') 
+0

Das war es! Guter Fang. Vielen Dank. – Gregg

+0

Das Interessante ist, dass die neuere Version 6.0.1.GA das Integrator-Verhalten wieder unterbricht (zumindest in meiner Konfiguration). Also musste ich bei 5.0.0.GA bleiben – naXa