Thanks for the confirmation, Ceki.
Ari

Ceki Gulcu wrote:

Hello Ari,

It's a known problem with Weblogic. Please see:

  http://bugzilla.slf4j.org/show_bug.cgi?id=138

Since only Weblogic seems to suffer from this issue, I am leaving it
open for the time being.

BR

Ari Meyer wrote:
Hi,

I get this warning in my Eclipse console (using WTP to connect to WebLogic 10.3):

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [zip:C:/Documents and Settings/Owner.ZEN/.m2/repository/org/slf4j/slf4j-log4j12/1.5.8/slf4j-log4j12-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [zip:C:/Documents and Settings/Owner.ZEN/.m2/repository/org/slf4j/slf4j-log4j12/1.5.8/slf4j-log4j12-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

Somehow, it's seeing multiple bindings, when they are in fact the same. I'm not sure how this is happening (I use Maven and the maven-eclipse-plugin for configuration). Referencing this code from LoggerFactory:

private static String STATIC_LOGGER_BINDER_PATH = "org/slf4j/impl/StaticLoggerBinder.class";

 private static void singleImplementationSanityCheck() {
   try {
Enumeration paths = LoggerFactory.class.getClassLoader().getResources(
         STATIC_LOGGER_BINDER_PATH);
     List implementationList = new ArrayList();
     while (paths.hasMoreElements()) {
       URL path = (URL) paths.nextElement();
       implementationList.add(path);
     }
     if (implementationList.size() > 1) {
       Util
.reportFailure("Class path contains multiple SLF4J bindings.");
       for(int i = 0; i < implementationList.size(); i++) {
Util.reportFailure("Found binding in ["+implementationList.get(i)+"]");
       }
       Util.reportFailure("See " + MULTIPLE_BINDINGS_URL
           + " for an explanation.");
     }
   } catch (IOException ioe) {
     Util.reportFailure("Error getting resources from path", ioe);
   }
 }

... somehow, the Enumeration "paths" must have 2 elements that happen to be identical -- probably due to my multiple WAR within EAR config (if I shared my utility JAR at the EAR level, this probably won't show up).

Simple fix: change implementationList from List to Set -- this way there will be no duplicates.

Best regards,
Ari



_______________________________________________
user mailing list
user@slf4j.org
http://www.slf4j.org/mailman/listinfo/user

Reply via email to