2016-03-02 9 views
13

Abbiamo riscontrato un problema durante l'aggiornamento da Spring-boot 1.3.2 alla versione 1.3.3 rilasciata di recente.aggiornamento da spring-boot dalla 1.3.2 alla 1.3.3: problema di logback

La nostra applicazione ha fatto uso delle seguenti dipendenze, ogni più tardi, senza alcun problema:

<neo4j.version>2.3.2</neo4j.version> 
    <sdn.version>4.0.0.RELEASE</sdn.version> 
    <sdn.rest.version>3.4.0.RELEASE</sdn.rest.version> 
    <neo4j.ogm.version>1.1.5</neo4j.ogm.version> 

Oggi ho aggiornato nostra primavera-boot e molla dati Neo4j basati su applicazioni, che inizia e funziona bene con primavera-avvio 1.3.2.RELEASE, cambiando il pom.xml da:

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

a

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

Con questo essere letteralmente l'unico cambiamento, l'applicazione ora non viene avviato con il seguente errore:

...

Failed to instantiate [ch.qos.logback.classic.LoggerContext] 
Reported exception: 
java.lang.AbstractMethodError: ch.qos.logback.classic.pattern.EnsureExceptionHandling.process(Lch/qos/logback/core/pattern/Converter;)V 
    at ch.qos.logback.core.pattern.PatternLayoutBase.start(PatternLayoutBase.java:88) 
    at ch.qos.logback.classic.encoder.PatternLayoutEncoder.start(PatternLayoutEncoder.java:28) 
    at ch.qos.logback.core.joran.action.NestedComplexPropertyIA.end(NestedComplexPropertyIA.java:167) 
    at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:317) 
    at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:196) 
    at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:182) 
    at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62) 
    at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:149) 
    at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:135) 
    at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:99) 
    at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:49) 
    at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:77) 
    at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:152) 
    at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:85) 
    at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55) 
    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:143) 
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:122) 
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:378) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:328) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:349) 
    at com.mycompany.Application.<clinit>(Application.java:35) 

Come previsto, tornando a 1.3.2.RELEASE non causa problemi .

La ricerca finora non ha traccia da seguire. Confrontando l'output mvn dependency:tree tra l'uso di spring-boot 1.3.2.RELEASE e 1.3.3.RELEASE, posso vedere che le dipendenze temporanee di ch.qos.logback: logback-classic e ch.qos.logback: logback-access gars hanno modificato da 1.1.3 per spring-boot 1.3.2.RELEASE a 1.1.5 per spring-boot 1.3.3.RELEASE, mentre ch.qos.logback: logback-core rimane a 1.1.3 per entrambi i sapori spring-boot.

Qualcuno ha idea di quale sia il problema di fondo (suppongo che la classe che non riesce a creare un'istanza sia stata rimossa o spostata) e/o - cosa più importante - che cosa posso fare per risolverlo?

+0

Si prega di aggiungere l'output di 'dipendenza mvn: tree'. Probabilmente hai un'altra dipendenza che sta forzando di nuovo a 1.1.3 invece di usare spring boots 1.1.5. –

risposta

22

Spring Boot manca un po 'di gestione delle dipendenze per logback-core che consente a diverse versioni di insinuarsi. Ho aperto an issue per risolverlo.

Nel frattempo, è possibile evitare il problema aggiungendo il tuo gestione delle dipendenze per esso al vostro pom:

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>ch.qos.logback</groupId> 
      <artifactId>logback-core</artifactId> 
      <version>${logback.version}</version> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 
+0

Grazie Andy, il tuo suggerimento di aggiungere esplicitamente la dipendenza logback-core ha risolto il problema. Nel nostro caso, l'ho impostato per fare uso di 1.1.5. e ha aggiunto un commento che questa dipendenza dovrebbe essere richiesta solo durante l'uso di spring-boot 1.3.3. –

+0

@Andy sembra che ci sia un errore nello schema. l'elemento deve essere dichiarato. – ivanenok

+0

@ivanenok Grazie. Non sono sicuro del motivo per cui i revisori hanno rifiutato la tua modifica. L'ho fatto da solo –

Problemi correlati