Предупреждение slf4j о том же дубликате
SLF4J жалуется на множественные привязки, но они выглядят одинаково:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [zip:C:/bea_domains/my_service_domain/servers/AdminServer/tmp/_WL_user/my-shared-app-lib/obaz3z/APP-INF/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [zip:C:/bea_domains/my_service_domain/servers/AdminServer/tmp/_WL_user/my-shared-app-lib/obaz3z/APP-INF/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Есть ли способ избавиться от этого предупреждения? Что может быть причиной этого?
3 ответа
В настоящее время идет обсуждение ошибки 138, которая кажется мне идентичной проблеме, о которой вы сообщили. Согласно обсуждению, "проблема была, на самом деле, в нескольких пути к классам в манифестах - если было больше, чем EJB jar с привязкой в списке, WLS предоставлял полный список из них. Даже если класс был таким же. Это относится и к ClassLoader поведение в WLS. Если вы действительно хотите удалить это предупреждение (хотя и не смертельное), в баге есть вложение, вы, вероятно, можете исправить с ним slf4j.
Ошибка 138 была исправлена в slf4j 1.6.2 теперь:-). http://www.slf4j.org/news.html
Помимо проблемы с несколькими путями классов, описанной в ответе Jasonw, эта проблема также может быть вызвана фреймворком PowerMock.
PowerMock использует собственный загрузчик классов (MockClassLoader
), который использует собственный механизм для делегирования загрузчику родительского класса. Это также может привести к ClassLoader.getResources()
возвращать один и тот же ресурс дважды, что вызывает предупреждение.
Кажется, это вызвано изменениями, описанными в проблеме 380 PowerMock.
Исправление для #138 в SLF4J (ссылка выше) также решает эту проблему, поэтому в SLF4J 1.6.2+ она больше не должна возникать.