SLF4J: Impossibile caricare la classe "org.slf4j.impl.StaticLoggerBinder"


619

La mia applicazione deve essere distribuita su tcServer e WebSphere 6.1. Questa applicazione utilizza ehCache e quindi richiede slf4j come dipendenza. Di conseguenza ho aggiunto il vaso slf4j-api.jar (1.6) al mio pacchetto di file di guerra.

L'applicazione funziona bene in tcServer ad eccezione del seguente errore:

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.

Tuttavia, quando eseguo la distribuzione in WebSphere ottengo un java.lang.NoClassDefFoundError: org.slf4j.impl.StaticLoggerBinder .

Anche accompagnato da Failed to load class "org.slf4j.impl.StaticMDCBinder"

Ho controllato i percorsi di classe di entrambi i server applicazioni e non esiste altro jar slf4j.

Qualcuno ha qualche idea di cosa potrebbe succedere qui?


Questo articolo ha risolto il mio problema
Contabile م

Risposte:


517

Ho avuto lo stesso problema con WebSphere 6.1. Come ha sottolineato Ceki, c'erano un sacco di barattoli che WebSphere stava usando e uno di loro puntava a una versione precedente di slf4j.

Il fallback No-Op si verifica solo con slf4j -1.6+, quindi tutto ciò che è più vecchio genera un'eccezione e interrompe la distribuzione.

C'è una documentazione nel sito SLf4J che risolve questo problema. L'ho seguito e aggiunto slf4j-simple-1.6.1.jaralla mia domanda insieme a quella slf4j-api-1.6.1.jarche avevo già.

Questo ha risolto il mio problema. Spero che aiuti gli altri che hanno questo problema.


4
Sì, l'errore va come anche menzionato qui - slf4j.org/manual.html Ma ora ricevo un nuovo errore - Causato da: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
david blaine

1
"Come ha sottolineato Ceki, c'erano un sacco di barattoli che WebSphere stava usando e uno di loro puntava a una versione precedente di slf4j." - Tanto per Maven che si prende cura delle dipendenze! Che scherzo.
AndroidDev


2
Sto usando 1.7 e ha lo stesso problema. Aggiungo slf4j-simple-1.7.jar e ora il problema è stato risolto.
littletiger,

1
Questo non funziona per me. Il barattolo slf4j-simple non raccoglie i log4j.properties. Invece, utilizzo l'implementazione aggiungendo slf4j-log4j12 e il log4j jar, che funziona bene per me.
flyrain,

379

Questo è per coloro che sono venuti qui dalla ricerca di Google.

Se usi Maven basta aggiungere quanto segue

   <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
       <version>1.7.5</version>
   </dependency>
   <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
       <version>1.7.5</version>
   </dependency>

O

   <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
       <version>1.7.5</version>
   </dependency>
   <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-simple</artifactId>
       <version>1.6.4</version>
   </dependency>

1
C'è un motivo per slf4j-simplenon essere la stessa versione di slf4j-api? Probabilmente avrebbero funzionato bene insieme, ma penso che sia più sicuro e una migliore pratica in generale farli usare la stessa versione. Inoltre, se è necessario abilitare la registrazione solo per console, ad esempio, quando si eseguono unit test, slf4j-simplesembra essere sufficiente (lo è stato per me).
Ivaylo Slavov,

23
AFAIK dovresti avere solo 1 impl di slf4j, ovvero slf4j-log4j12 O slf4j-simple, non entrambi.
Ondra Žižka,

@Igor KatKov funziona solo su una macchina locale ma ottenere lo stesso errore su Jenkins non è sicuro di cosa stia andando storto. puoi per favore chiarire
vikramvi

slf4j-api richiede una configurazione che non è disponibile alla prima esecuzione (e non è stato modificato alcun file di configurazione). L'uso di slf4j-simple ti permetterà di usare il Logger di base senza configurare alcun file tranne WYSIWYG. Puoi quindi tornare a slf4j-api dopo aver imparato a configurare i file e personalizzare l'output del Logger come preferisci. (
Sto

53

Aggiungilo semplicemente al tuo pom.xml :

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>1.7.21</version>
</dependency>

3
La soluzione ha funzionato per me; Vale la pena di fare riferimento alla documentazione (dove ho trovato l'errore spiegato): slf4j.org/codes.html#StaticLoggerBinder
Witold Kaczurba

2
nient'altro che questo ha funzionato per me mentre eseguivo un semplice esempio di produttore kafka. grazie mille!
Viren,

@WitoldKaczurba ha ragione. Stavo avendo lo stesso problema mentre usavo la dipendenza usando Maven. Ho appena cercato su google e sono andato su slf4j.org/codes.html#StaticLoggerBinder che indica il problema e la sua soluzione. Stavo usando la versione 1.7.25 di slf4j-api. Dopo aver controllato la documentazione sul link menzionato, ho appena usato <dipendenza> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.25</version> </dependency>e il problema è stato risolto
Mohammad Anas

Non capisco il punto di usare Maven se le librerie che hanno bisogno di un logger (es. Manubri che hanno bisogno di slf4j) non lo dichiarano nel loro pom. Comunque grazie.
Eric Duminil,

Nel mio caso, questa non è una soluzione. Sono solo informazioni nascoste, che esistono versioni incompatibili di slf4j e log4j o di un altro plugin.
hariprasad,

42

È necessario aggiungere seguente file jar nel classpath: slf4j-simple-1.6.2.jar. Se non lo hai, ti preghiamo di scaricarlo. Fare riferimento a http://www.slf4j.org/codes.html#multiple_bindings


Ma non ho quel vaso sul mio percorso di classe tcServer, questo è ciò che mi confonde. Non capisco come non ho bisogno di un jar aggiuntivo in tcServer ma lo faccio in WebSphere
JJ180

1
Ha funzionato per me e molto più semplice della risposta accettata. Anche la versione 1.7.7 ha funzionato.
La-comadreja,

1
Ho già avuto jul-to-slf4jnel mio pom.xmle appena aggiunto slf4j-simplein precedenza e funziona bene.
slugmandrew,

Come si aggiunge semplicemente il file jar al percorso di classe?
Dean013,

Per favore, puoi spiegarmi qual è il percorso di lezione? dove si trova? Non capisco
Rose8525,

36

Alcune risposte qui raccomandano di aggiungere la dipendenza slf4j-simple al file pom di Maven. Potresti voler verificare la versione più recente.

Su https://mvnrepository.com/artifact/org.slf4j/slf4j-simple troverai l'ultima versione di SLF4J Simple Binding. Scegli quello che preferisci (ancora l'1.7.26 del 2019-02 è la versione stabile al 2019-07) e includilo nel tuo pom.xml.

Per tua comodità, qui vengono mostrate alcune dipendenze, ma potrebbero non essere aggiornate quando leggi questo!

Versione Alpha del 2019-10

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-simple</artifactId>
   <version>2.0.0-alpha1</version>
 </dependency>

Versione beta di febbraio 2019

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.8.0-beta4</version>
</dependency>

Versione stabile 2019-12

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-simple</artifactId>
   <version>1.7.30</version>
</dependency>

Ho rimosso la parte del test dell'oscilloscopio grazie al commento qui sotto.


6
perchè usi <scope>test</scope>? Nella mia esperienza, ho almeno bisogno runtimedell'ambito per assicurarmi che slf4j-simplesia sul percorso di classe. Curioso come hai fatto a farlo funzionare solo con l' testambito ...
ecoe,

Grazie per averlo sottolineato. Ho rimosso il tag ambito dalla mia risposta di conseguenza. Era un problema di taglia e incolla: il link che sto fornendo fornisce la dipendenza beta in questo modo.
Wolfgang Fahl,

27

Stavo affrontando lo stesso errore. Ho configurato slf4j-api, slf4j-log4j12 e log4j, nel mio sviluppo locale. Tutta la configurazione andava bene, ma la dipendenza slf4j-log4j12 che ho copiato da mvnrepository aveva un ambito di prova <scope>test</scope>. Quando l'ho rimosso tutto va bene.

Alcune volte sciocchi errori ci rompono la testa;)


1
Grazie mille! Odio lo stesso problema e stavo per rinunciare fino a quando non ho trovato il tuo post!
Ergodyne,

1
Questo mi ha aiutato anche
cod3min3,

27

A volte dovremmo vedere la nota dell'avvertimento SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details..

Ciò accade quando non è stato trovato alcun binding SLF4J appropriato sul percorso della classe

Puoi cercare il motivo per cui arriva questo avviso.
Aggiungendo uno del vaso da *slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jaro logback-classic.jar*al percorso di classe dovrebbe risolvere il problema.

compile "org.slf4j:slf4j-simple:1.6.1"

per esempio aggiungi il codice sopra al tuo build.gradleo il codice corrispondente a pom.xmlper il progetto maven.


15

mettere il file slf4j-log4j12-1.6.4.jarnel percorso di classe farà il trucco.


6
o aggiungi la dipendenza nel tuo pom <dipendenza] <gruppoId> org.slf4j </groupId> <artifactId> slf4j-log4j12 </artifactId> </dependency>
enkor

11

Se stai usando Maven per la gestione delle dipendenze, puoi semplicemente aggiungere la seguente dipendenza in pom.xml

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.5.6</version>
</dependency>

Per utenti non Maven Basta scaricare la libreria e inserirla nel percorso di classe del progetto.

Qui puoi vedere i dettagli: http://www.mkyong.com/wicket/java-lang-classnotfoundexception-org-slf4j-impl-staticloggerbinder/


1
Anche per gli utenti di Maven ho scoperto che dovevo aggiungere quanto segue in pom.xml, che porta automaticamente anche il core di logback: <dipendenza> <groupId> ch.qos.logback </groupId> <artifactId> logback-classic </ artefactId> <version> 1.0.9 </version> </dependency>
Paul

2
This is not an error. This message tells you that you do not have any logger implementation (such as e.g. Logback) added in classpath, and therefore NOP (No Operation) log Cerca il commento sarxos, come menzionato da @Paul, devi aggiungere il logback-classic. Un altro approccio di cambiamento <artifactId>slf4j-simple</artifactId>da a <artifactId>slf4j-api</artifactId>fa anche il lavoro. È illustrato qui
Abhijeet

10

SLF4j è un'astrazione per vari framework di registrazione . Quindi oltre ad avere slf4j devi includere qualsiasi tuo framework di log come log4j o logback (etc) nel tuo percorso di classe.
Per avere un'idea, fai riferimento al First Baby Step in http://logback.qos.ch/manual/introduction.html


2
L'aggiunta del logback ha risolto questo problema per me. Ho lasciato l'ultimo classico del logback in pom (1.1.7) e non è riuscito perché la dipendenza slf4j era troppo vecchia (1.6.2). Il downgrade del logback a 1.0.0 e il rilascio di slf4j su 1.6.x ha funzionato, così come l'aggiornamento di slf4j a 1.7.20 e il logback su 1.1.7.
ECDragon

5

Slf4j è una facciata per i framework di registrazione sottostanti come log4j, logback, java.util.logging.

Per connettersi con i framework sottostanti, slf4j utilizza un'associazione.

  • log4j - slf4j-log4j12-1.7.21.jar
  • java.util.logging - slf4j-jdk14-1.7.21.jar ecc

L'errore di cui sopra viene generato se si manca il vaso di rilegatura. Puoi scaricare questo vaso e aggiungerlo al percorso di classe.

Per la dipendenza da maven,

<dependency> 
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.7.21</version>
</dependency>

Questa dipendenza oltre a slf4j-log4j12-1.7.21.jar, inserirà slf4j-api-1.7.21.jar e log4j-1.2.17.jar nel progetto

Riferimento: http://www.slf4j.org/manual.html


La tua soluzione è stata l'unica che ha funzionato per me, grazie!
Edenshaw,

5

Stavo affrontando il problema simile con le applicazioni Spring-boot-2 con la libreria Java 9.

L'aggiunta della seguente dipendenza nel mio pom.xml ha risolto il problema per me:

    <dependency>
        <groupId>com.googlecode.slf4j-maven-plugin-log</groupId>
        <artifactId>slf4j-maven-plugin-log</artifactId>
        <version>1.0.0</version>
    </dependency>

4

Nel caso Websphere, hai una versione precedente di slf4j-api.jar, 1.4.x. o 1.5.x in giro da qualche parte. Il comportamento che si osserva su tcServer, ovvero il failover su NOP, si verifica nelle versioni slf4j 1.6.0 e successive. Assicurati di utilizzare slf4j-api-1.6.x.jar su tutte le piattaforme e che nessuna versione precedente di slf4j-api sia inserita nel percorso della classe.


Grazie, ho controllato il mio percorso di classe WebSphere 6.1 e non vedo nessun'altra versione di slf4j, ad esempio ho fatto una ricerca sul mio filesystem WebSphere per il contenitore slf4j e mi è stata restituita solo la versione 1.6. Sai se WebSphere viene fornito con slf4j?
JJ180,

Tutto è possibile ma sarei molto sorpreso se WebSphere venisse fornito in bundle con slf4j-api. Fasci di saldatura slf4j-api.jar. Stai usando la saldatura?
Ceki,

4

Ho riscontrato questo problema quando ricevo il seguente errore:

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.

quando stavo usando slf4j-api-1.7.5.jarnel mio libs.

Nonostante abbia provato con l'intero vasetti di complemento suggerito, come slf4j-log4j12-1.7.5.jar, slf4j-simple-1.7.5il messaggio di errore persisteva ancora. Il problema è stato finalmente risolto quando ho aggiunto slf4j-jdk14-1.7.5.jarle librerie Java.

Ottieni l'intero pacchetto slf4j su http://www.slf4j.org/download.html


4

Per favore, aggiungi le seguenti dipendenze a pom per risolvere questo problema.

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>1.7.25</version>
  <scope>test</scope>
</dependency>

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

Ho appena incluso la prima dipendenza - come indicato in un'altra risposta - e funziona. Entrambe le dipendenze non risolvono il problema per me.
RubioRic,

E vuoi usare la maven locale invece della bundle maven di Intellij.
Abdul Gaffar,

4

In alternativa all'inclusione del barattolo e alle soluzioni pure di maven, puoi includerlo da maven con gradle.

Esempio per la versione 1.7.25

// https://mvnrepository.com/artifact/org.slf4j/slf4j-simple
api group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.25'

Inseriscilo nelle dipendenze del tuo build.gradlefile.


3

Sto lavorando a un progetto Struts2 + Spring. Quindi ha bisogno di una dipendenzaslf4j-api-1.7.5.jar .

Se eseguo il progetto, ricevo un errore simile

Caricamento della classe "org.slf4j.impl.StaticLoggerBinder" non riuscito "

Ho risolto il mio problema aggiungendo il slf4j-log4j12-1.7.5.jar.

Quindi aggiungi questo vaso nel tuo progetto per risolvere il problema.


3

Come afferma il manuale SLF4J

La Simple Logging Facade per Java (SLF4J) funge da semplice facciata o astrazione per vari framework di registrazione, come java.util.logging, logback e log4j.

e

L'avviso scompare non appena aggiungi un'associazione al tuo percorso di classe.

Quindi dovresti scegliere quale associazione vuoi usare.

Associazione NoOp (slf4j-nop)

Binding per NOP, eliminando silenziosamente tutte le registrazioni.

Controlla la nuova versione su https://search.maven.org/search?q=g:org.slf4j%20AND%20a:slf4j-nop&core=gav

Rilegatura semplice (slf4j-simple)

genera tutti gli eventi su System.err. Vengono stampati solo i messaggi di livello INFO e superiori. Questa associazione può essere utile nel contesto di piccole applicazioni.

Controlla la nuova versione su https://search.maven.org/search?q=g:org.slf4j%20AND%20a:slf4j-simple&core=gav

Binding per i framework di registrazione (java.util.logging, logback, log4j)

È necessario uno di questi binding se si desidera scrivere il registro in un file.

Vedi la descrizione e le istruzioni su https://www.slf4j.org/manual.html#projectDep


La mia opinione

Consiglierei Logback perché è un successore del progetto log4j .

Controlla la versione più recente dell'associazione per questo su https://search.maven.org/search?q=g:ch.qos.logback%20AND%20a:logback-classic&core=gav

Ottieni l'output della console fuori dalla scatola ma se hai bisogno di scrivere i log in un file metti la FileAppenderconfigurazione sul src/main/resources/logback.xmlo sul src/test/resources/logback-test.xmlproprio in questo modo:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are assigned the type
             ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>logs/logs.log</file>

        <encoder>
            <pattern>%date %level [%thread] %logger{10} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="debug">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </root>

    <logger level="DEBUG" name="com.myapp"/>
</configuration>

(Vedi la descrizione dettagliata nel manuale: https://logback.qos.ch/manual/configuration.html )


3
     <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.21</version>
    </dependency>

Inserisci la dipendenza sopra menzionata nel file pom.xml


Ma ricorda di controllare l'ultima versione.
user1053510

2

Ho aggiunto questa dipendenza per risolvere questo problema:

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

1

Secondo la documentazione ufficiale di SLF4J

Caricamento della classe org.slf4j.impl.StaticLoggerBinder non riuscito

Questo messaggio di avviso viene segnalato quando non è stato possibile caricare in memoria la classe org.slf4j.impl.StaticLoggerBinder. Ciò accade quando non è stato trovato alcun binding SLF4J appropriato sul percorso della classe. Posizionare uno (e solo uno) di slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar o logback-classic.jar sul percorso della classe dovrebbe risolvere il problema.

Aggiungi semplicemente questo vaso con slf4j api.jar al tuo percorso di classe per fare le cose. Buona fortuna



1

riscontrato lo stesso problema su payara 5.191

jcl-over-slf4j insieme a slf4j-log4j12 ha risolto il problema

<properties>
  <slf4j.version>1.7.29</slf4j.version>
</properties>

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>${slf4j.version}</version>
  <type>jar</type>
</dependency> 

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>jcl-over-slf4j</artifactId>
  <version>${slf4j.version}</version>
</dependency>        

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>${slf4j.version}</version>
</dependency>

0

So che questo post è un po 'vecchio, ma nel caso qualcun altro incontri questo problema:

Aggiungi slf4j-jdk14-XXXjar al tuo CLASSPATH (dove XXX è il numero di versione, ad esempio slf4j-jdk14-1.7.5.jar).

HT Peter


1
Stai suggerendo agli utenti di ripristinare la registrazione JDK1.4 per risolvere un problema relativo al percorso di classe? Guarda anche questa voce FAQ: slf4j.org/faq.html#need_to_recompile
mwhs

0

Uso Jena e aggiungo la dipendenza come collega a pom.xml

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

Provo ad aggiungere slf4j-simple ma scompare semplicemente l'errore "SLF4J: Impossibile caricare la classe" org.slf4j.impl.StaticLoggerBinder "" ma logback-classic mostra ulteriori informazioni di dettaglio.

Il documento ufficiale


0

la soluzione è indicata sul loro sito ufficiale:

Caricamento della classe org.slf4j.impl.StaticLoggerBinder non riuscito

Questo messaggio di avviso viene segnalato quando non è stato possibile caricare in memoria la classe org.slf4j.impl.StaticLoggerBinder. Ciò accade quando non è stato trovato alcun binding SLF4J appropriato sul percorso della classe. Posizionare uno (e solo uno) di slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar o logback-classic.jar sul percorso della classe dovrebbe risolvere il problema. DAL 1.6.0 A partire dalla versione 1.6 di SLF4J, in assenza di un'associazione, SLF4J passerà automaticamente all'implementazione di un logger senza operazioni (NOP). Se sei responsabile della creazione del pacchetto di un'applicazione e non ti preoccupi della registrazione, posizionando slf4j-nop.jar nel percorso di classe dell'applicazione eliminerai questo messaggio di avviso. Si noti che i componenti incorporati come librerie o framework non devono dichiarare una dipendenza da alcun legame SLF4J ma dipendono solo da slf4j-api.

soluzione: ho aggiunto al mio progetto usando la ricerca maven su intellij e ho scelto slf4j-jdk14.jar.


0

Molto probabilmente il tuo problema era dovuto a <scope>test</scope>(anche in alcuni casi <scope>provided</scope>), come detto @thangaraj .

La documentazione dice:

Questo ambito indica che la dipendenza non è richiesta per l'uso normale dell'applicazione ed è disponibile solo per le fasi di compilazione ed esecuzione del test. Le dipendenze di test non sono transitive e sono presenti solo per i percorsi di classe di test ed esecuzione.

Quindi, se non hai bisogno di dipendenze a scopo di test, puoi usare invece di (cosa vedrai in mvnrepository ):

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-nop</artifactId>
    <version>1.7.24</version>
    <scope>test</scope>
</dependency>

Senza alcun ambito (per impostazione predefinita sarebbe ambito di compilazione quando non viene fornito nessun altro ambito):

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop -->
<dependency>  
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-nop</artifactId>
   <version>1.7.25</version>
</dependency>

Questo è lo stesso di:

 <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop -->
 <dependency>  
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-nop</artifactId>
   <version>1.7.25</version>
   <scope>compile</scope>
 </dependency>


0

Per me il problema era: usando Hibernate, ho visto che utilizzava già slf4j ed era già nel mio percorso di classe, quindi ho deciso di usarlo. Il prossimo passo: aggiungere imlementor per slf4j, quindi ho aggiunto a maven:

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

Ma non è riuscito con errore! SLF4J: Impossibile caricare la classe "org.slf4j.impl.StaticLoggerBinder"

La soluzione era: la dipendenza di Hibernate da slf4j era la versione 1.7.26 e ho aggiunto una dipendenza minore dalla versione 1.7.25 . Quindi, quando ho risolto questo problema, tutto è andato bene


0

Non ho aggiunto dipendenze, ho solo cambiato il modo in cui le consumavo.

Codice di anteprima

(Rimuovi il commento da questo codice se stai utilizzando la versione di ricerca elastica <7.0)

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

Codice attuale

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

Sto usando la richiesta di massa e con ciò rimuovo quell'errore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.