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?

0voto

Pingjiang Li Punkte 687

Ich verwende Jena und ich füge die Fellowing-Abhängigkeit zu pom.xml

<dependency> 
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>1.0.13</version>
</dependency>

Ich versuche, slf4j-simple hinzuzufügen, aber es verschwinden nur die "SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"" Fehler, aber logback-Classic zeigen mehr Detail-Informationen.

El offizielles Dokument

0voto

wolf23 Punkte 1

Ich hatte ein ähnliches Problem und konnte es wie folgt lösen:

  1. Datei -> Projektstruktur...
  2. Modul -> Abhängigkeiten
  3. Neue Bibliothek -> Von Maven -> Suche nach: slf4j.nop
  4. Klicken Sie auf die neueste Version -> Übernehmen

0voto

midiman Punkte 11

Ich weiß, dass dieser Beitrag schon etwas älter ist, aber für den Fall, dass noch jemand auf dieses Problem stößt:

Fügen Sie slf4j-jdk14-X.X.X.jar zu Ihrem CLASSPATH hinzu (wobei X.X.X die Versionsnummer ist - z.B. slf4j-jdk14-1.7.5.jar).

HTH Peter

-1voto

Ich habe keine Abhängigkeiten hinzugefügt, sondern nur die Art und Weise geändert, in der ich sie konsumiert habe.

Vorschau-Code

(Dekommentieren Sie diesen Code, wenn Sie die elastic search Version < 7.0 verwenden)

IndexRequest indexRequest = new IndexRequest(
  "twitter",
  "tweets",
  id // this is to make our consumer idempotent
).source(record.value(), XContentType.JSON);

Aktueller Code

IndexRequest indexRequest = new IndexRequest("tweets")
  .source(record.value(), XContentType.JSON)
  .id(id); // this is to make our consumer idempotent

Ich verwende Bulkrequest und damit kann ich diesen Fehler beheben.

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