2016-04-24 11 views
0

Ich versuche ein Video mit OpenIMAJ zu laden. Es spielt das Video-Display, aber zeigt mir immer diesen Fehler:SLF4J: Klassenpfad enthält mehrere SLF4J-Bindungen; exclude slf4j

SLF4J: Class path contains multiple SLF4J bindings. 
SLF4J: Found binding in [jar:file:/C:/Users/MaryLu/.m2/repository/ch/qos/logback/logback-classic/1.0.0/logback-classic-1.0.0.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/C:/Users/MaryLu/.m2/repository/org/slf4j/slf4j-log4j12/1.7.2/slf4j-log4j12-1.7.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 
SLF4J: Actual binding is of type [ch.qos.logback.classic.selector.DefaultContextSelector] 
16/04/24 20:39:57 INFO xuggle.XuggleVideo: URL file:/F:/workspaceMaven/keyboardcat.flv could not be opened by ffmpeg. Trying to open a stream to the URL instead. 
20:39:57.984 [main] DEBUG com.xuggle.xuggler - Could not open output url: file:/F:/workspaceMaven/keyboardcat.flv (../../../../../../../csrc/com/xuggle/xuggler/Container.cpp:436) 

ich bereits ähnlichen Fragen geprüft, aber ich habe es nicht geschafft, das Problem zu lösen. Wenn ich verstanden habe, muss ich slf4j irgendwo in meinem POM.xml ausschließen, aber ich weiß nicht wirklich in welcher Abhängigkeit.

Antwort

1

Die slf4j-Nachrichten sagen nur, dass Ihre slf4j-Konfiguration unterbrochen ist, so dass sie auf eine Standardkonfiguration zurückfällt.

Das eigentliche Problem ist, dass Ihre URL nicht auf eine lokale Datei zeigt, wie Sie es offensichtlich erwarten, weil es kaputt ist, so dass der Code fehlschlägt, der versucht, es zu verwenden. Ein möglicher Grund für die Beschädigung kann sein, dass Sie die Datei bereits irgendwo geöffnet haben, sodass Windows sie nicht überschreiben kann.

3

Bereits die Antwort ist in Ihrer Protokolldatei angegeben. Folge dem Tutorial.

http://www.slf4j.org/codes.html#multiple_bindings

Wie Wouter angegeben

Run mvn dependency:tree und suchen die Abhängigkeit haben die slf4j Implementierungen Sie nicht wollen, sie dann mit einer Abhängigkeit Ausschluss ausschließen wie:

<dependency> 
    <groupId>org.someexternallib</groupId> 
    <artifactId>someexternallibartifact</artifactId> 
    <version>...</version> 

    <exclusions> 
     <exclusion> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 
+0

Mein Problem ist, dass ich nicht scheinen kann, die richtige Abhängigkeit zu finden oder ich schreibe es falsch, weil es nicht funktioniert – MaryLu

0
  <exclusion> 
      <artifactId>logback-classic</artifactId> 
      <groupId>ch.qos.logback</groupId> 
      </exclusion> 

      <exclusion> 
       <artifactId>slf4j-simple</artifactId> 
       <groupId>org.slf4j</groupId> 
      </exclusion> 

Um die Abhängigkeiten zu finden, die das obige Artefakt verwenden, finden Sie unterheraus"$ mvn dependency: tree" Sobald Sie das herausgefunden haben, setzen Sie die obigen Ausnahmen auf die entsprechenden Abhängigkeiten. Das sollte es beheben, ich würde sagen, achten Sie auf bestimmte Abhängigkeiten.