Подтвердить что ты не робот

Spring -boot обновление с 1.3.2 до 1.3.3: ошибка журнала

Мы столкнулись с проблемой при обновлении с spring -boot 1.3.2 до недавно выпущенного 1.3.3.

В нашем приложении использовались следующие зависимости, каждая из которых была последней, без проблем:

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

Сегодня я обновил наше приложение spring -boot и Spring Data Neo4j, которое запускается и хорошо работает с spring -boot 1.3.2.RELEASE, меняя pom.xml на:

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

к

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

Если это буквально единственное изменение, приложение теперь не может начать со следующей ошибки:

...

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)

Как и ожидалось, возврат к 1.3.2.RELEASE не вызывает никаких проблем.

Поиск до сих пор не показывает следа. Сравнивая вывод mvn dependency:tree между использованием spring -boot 1.3.2.RELEASE и 1.3.3.RELEASE, я вижу, что переходные зависимости ch.qos.logback: logback-classic и ch.qos.logback: logback -access изменились с 1.1.3 на spring -boot 1.3.2.RELEASE до 1.1.5 для spring -boot 1.3.3.RELEASE, а ch.qos.logback: logback-core остается на 1.1. 3 для обоих ароматов spring -boot.

Кто-нибудь имеет представление о том, что является основной проблемой (я предполагаю, что класс, не создающий экземпляр, был удален или перемещен) и/или - что более важно - что я могу сделать для его решения?

4b9b3361

Ответ 1

Spring В загрузке отсутствует некоторое управление зависимостями для logback-core, которое позволяет выполнять разные версии. Я открыл проблему, чтобы решить эту проблему.

Тем временем вы можете избежать этой проблемы, добавив свое собственное управление зависимостями для своего pom:

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