2015-06-06 1 views
1

я получаю следующее, когда я бегу мой веб-сервер:Maven <exclusions> не имеет никакого эффекта

SLF4J: Class path contains multiple SLF4J bindings. 
SLF4J: Found binding in [jar:file:/C:/Users/Stefan/.m2/repository/org/slf4j/slf4j-log4j12/1.6.4/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/C:/Users/Stefan/.m2/repository/ch/qos/logback/logback-classic/0.9.30/logback-classic-0.9.30.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 
log4j:ERROR A "org.apache.log4j.ConsoleAppender" object is not assignable to a "org.apache.log4j.Appender" variable. 
log4j:ERROR The class "org.apache.log4j.Appender" was loaded by 
log4j:ERROR [[email protected]] whereas object of type 
log4j:ERROR "org.apache.log4j.ConsoleAppender" was loaded by [[email protected]]. 

Я попытался исключить /ch/qos/logback/logback-classic/ зависимость. Вот часть из моего pom.xml:

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>1.6.4</version> 
    <exclusions> 
     <exclusion> 
      <groupId>ch.qos.logback</groupId> 
      <artifactId>logback-classic</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 

Я добавил это, но после того, как Maven Обновить результат все тот же. Как я могу это решить?

ответ

0

Здесь вы должны посмотреть на две вещи. 1. Зависимость SLF.

SLF4J API предназначен для связывания с одним и только одним базовым журналом каркасом за один раз. Если на пути класса присутствует более одного привязки, SLF4J выдаст предупреждение с указанием местоположения этих привязок .

here. Это означает, что может быть другая баночка, которая имеет зависимость от logback-classic. Таким образом, вы должны найти это и исключить зависимость от всех тех, что находятся в вашем пути к классам.

  1. Ошибка в log8j. Вы используете slf4j-api, который является основным вариантом. Однако два загрузчика классов (WebAppClassLoader - версия Tomcat и sun.misc.Launcher $ AppClassLoader - нормальный look here) загружают разные версии и пытаются ссылаться друг на друга. Таким образом, может возникнуть проблема с тем, как вы запускаете приложение.

Просьба очистить первую проблему и посмотреть, загружены ли все необходимые классы одним и тем же загрузчиком классов. Вы можете использовать ссылку, предоставленную @manouti, чтобы получить представление о дереве зависимостей. Посмотрите, тоже ли это helps. Счастливое кодирование.

Смежные вопросы