943 Stimmen

SLF4J: Die Klasse "org.slf4j.impl.StaticLoggerBinder" konnte nicht geladen werden.

Meine Anwendung soll sowohl auf tcServer als auch auf WebSphere 6.1 eingesetzt werden. Diese Anwendung verwendet ehCache und benötigt daher slf4j als Abhängigkeit. Als Ergebnis habe ich das slf4j-api.jar (1.6) jar zu meinem War-Datei-Bundle hinzugefügt.

Die Anwendung funktioniert in tcServer einwandfrei, bis auf den folgenden Fehler:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

Wenn ich jedoch in WebSphere einsetze, erhalte ich eine java.lang.NoClassDefFoundError: org.slf4j.impl.StaticLoggerBinder .

Auch begleitet von Failed to load class "org.slf4j.impl.StaticMDCBinder"

Ich habe die Klassenpfade beider Anwendungsserver überprüft und es gibt kein anderes slf4j jar.

Hat jemand eine Idee, was hier passieren könnte?

2voto

Amado Saladino Punkte 1520

Ich habe diese Abhängigkeit hinzugefügt, um dieses Problem zu lösen:

https://mvnrepository.com/artifact/org.slf4j/slf4j-simple/1.7.25

2voto

Roushan Punkte 3432

Nach Angaben von SLF4J offizielle Dokumentation

Die Klasse org.slf4j.impl.StaticLoggerBinder konnte nicht geladen werden.

Diese Warnmeldung wird angezeigt, wenn die org.slf4j.impl.StaticLoggerBinder nicht in den Speicher geladen werden konnte Speicher geladen werden konnte. Dies geschieht, wenn keine geeignete SLF4J-Bindung im Klassenpfad gefunden wurde. Platzierung einer (und nur einer) von slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar oder logback-classic.jar im Klassenpfad sollte das Problem gelöst sein.

Einfach hinzufügen dieses Gefäß zusammen mit slf4j api.jar zu Ihrem Klassenpfad hinzufügen, um die Dinge zu erledigen. Viel Glück

1voto

JeSa Punkte 489

Für mich war das Thema: Mit Hibernate, sah ich, dass es bereits slf4j verwendet, und es war in meinem Klassenpfad bereits, so dass ich beschlossen, es zu verwenden. Der nächste Schritt - Hinzufügen von imlementor für slf4j, so fügte ich zu Maven:

<dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-jdk14</artifactId>
        <version>1.7.25</version>
</dependency>

Aber es scheiterte mit Fehler! SLF4J: Die Klasse "org.slf4j.impl.StaticLoggerBinder" konnte nicht geladen werden.

Die Lösung war: Die Abhängigkeit von Hibernate von slf4j war Version 1.7.26 und ich habe eine geringfügige Versionsabhängigkeit hinzugefügt 1.7.25 . Als ich dies behoben hatte, war alles in Ordnung.

1voto

Luis Manrique Punkte 198

Ich habe es gelöst, indem ich diese Bibliothek hinzugefügt habe: slf4j-simple-1.7.25.jar Sie können diese im offiziellen Web herunterladen https://www.slf4j.org/download.html

0voto

Badr Bellaj Punkte 8859

Die Lösung ist auf der offiziellen Website angegeben:

Die Klasse org.slf4j.impl.StaticLoggerBinder konnte nicht geladen werden.

Diese Warnmeldung wird angezeigt, wenn die org.slf4j.impl.StaticLoggerBinder Klasse nicht geladen werden konnte in Speicher geladen werden konnte. Dies geschieht, wenn keine geeignete SLF4J-Bindung gefunden werden konnte im Klassenpfad gefunden wurde. Platzieren einer (und nur einer) von slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar oder logback-classic.jar im Klassenpfad sollte das Problem gelöst sein. SEIT 1.6.0 Ab SLF4J Version 1.6 wird SLF4J in Ermangelung einer Bindung standardmäßig eine No-Operation (NOP) Logger-Implementierung verwenden. Wenn Sie für die Paketierung einer Anwendung verantwortlich sind und sich nicht um die Logging nicht interessiert, können Sie slf4j-nop.jar in den Klassenpfad Ihrer Anwendung platzieren, um diese Warnmeldung loszuwerden. Beachten Sie, dass eingebettete Komponenten wie Bibliotheken oder Frameworks sollten keine Abhängigkeit von einer SLF4J-Bindung deklarieren sollten, sondern nur von slf4j-api abhängen. Wenn eine Bibliothek eine Kompilierzeit-Abhängigkeit von einer SLF4J-Bindung deklariert, so zwingt sie diese Bindung dem Endbenutzer auf und negiert damit den Zweck von SLF4J.

Lösung: Ich habe mein Projekt mit Maven Research auf intellij hinzugefügt und ich habe die slf4j-jdk14.jar gewählt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X