2016-03-02 7 views
13

Wir haben ein Problem treffen, wenn sie aus feder Boot 1.3.2 auf die kürzlich veröffentlichten 1.3.3 aktualisieren.feder Boot-Upgrade von 1.3.2 bis 1.3.3: logback Ausgabe

Unsere Anwendung ist die Verwendung der folgenden Abhängigkeiten worden machen, jeder spätestens ohne Ausgabe:

<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> 

Heute habe ich ein Upgrade unsere feder Boot und Spring Data Neo4j -basierte Anwendung, die startet und arbeitet gut mit Feder-boot 1.3.2.RELEASE, durch die pom.xml ändert:

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

zu

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

Mit dieser ist buchstäblich die einzige Änderung, schlägt die Anwendung nun mit dem folgenden Fehler zu starten:

...

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) 

Wie erwartet, zu 1.3.2.RELEASE Rückkehr verursacht keine Probleme .

bisher Suche zeigt keine Spur zu folgen. Vergleiche man den mvn dependency:tree Ausgang zwischen der Verwendung von feder Boot 1.3.2.RELEASE und 1.3.3.RELEASE, kann ich sehen, dass die vorübergehenden Abhängigkeiten von ch.qos.logback: logback-classic und ch.qos.logback: logback-Zugang Gläser haben geändert von 1.1.3 für das Frühjahr-boot 1.3.2.RELEASE bis 1.1.5 für das Frühjahr-Boot-1.3.3.RELEASE, während ch.qos.logback: logback-Core für beide feder Boot-Aromen bei 1.1.3 bleibt.

Hat jemand eine Vorstellung davon, was das zugrunde liegende Problem ist (ich vermute, die Klasse fehlgeschlagen zu Instanziieren wurde entfernt oder verlagert) und/oder - was noch wichtiger ist - was kann ich tun, um es zu lösen?

+0

Bitte geben Sie die Ausgabe von 'mvn Abhängigkeit hinzu: tree'. Sie haben wahrscheinlich eine andere Abhängigkeit, die es zurück zu 1.1.3 zwingt, anstatt Federstiefel 1.1.5 zu verwenden. –

Antwort

22

Spring Boot fehlt einige Abhängigkeitsverwaltung für logback-core, die verschiedene Versionen zu kriechen erlaubt. Ich habe an issue geöffnet, um das zu adressieren.

In der Zwischenzeit können Sie das Problem vermeiden, indem Sie Ihre eigenen Abhängigkeitsmanagement für Sie es zu Ihrem pom hinzufügen:

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

Dank Andy, Ihr Vorschlag ausdrücklich die logback-Core-Abhängigkeit Hinzufügen das Problem behoben. In unserem Fall habe ich festgelegt, dass ich 1.1.5 verwenden soll. und fügte hinzu, dass diese Abhängigkeit nur bei Verwendung von Spring-Boot 1.3.3 erforderlich sein sollte. –

+0

@Andy sieht aus wie es ein Fehler, mit Schema ist. -Element sollte deklariert werden. – ivanenok

+0

@ivanenok Danke. Nicht sicher, warum die Rezensenten Ihre Bearbeitung abgelehnt haben. Ich habe es selbst gemacht. –