SLF4J: falha ao carregar a classe "org.slf4j.impl.StaticLoggerBinder"

619

Meu aplicativo deve ser implementado no tcServer e no WebSphere 6.1. Este aplicativo usa o ehCache e, portanto, requer slf4j como uma dependência. Como resultado, adicionei o jar slf4j-api.jar (1.6) ao meu pacote de arquivos war.

O aplicativo funciona bem no tcServer, exceto pelo seguinte erro:

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.

No entanto, quando implanto no WebSphere, recebo um java.lang.NoClassDefFoundError: org.slf4j.impl.StaticLoggerBinder.

Também acompanhado por Failed to load class "org.slf4j.impl.StaticMDCBinder"

Eu verifiquei os caminhos de classe dos dois servidores de aplicativos e não há outro jar slf4j.

Alguém tem alguma idéia do que pode estar acontecendo aqui?

JJ180
fonte
Este artigo resolveu meu problema
contabilista

Respostas:

517

Eu tive o mesmo problema com o WebSphere 6.1. Como Ceki apontou, havia muitos jarros que o WebSphere estava usando e um deles estava apontando para uma versão mais antiga do slf4j.

O fallback No-Op acontece apenas com slf4j -1.6+, portanto, qualquer coisa mais antiga lançará uma exceção e interromperá sua implantação.

Existe uma documentação no site SLf4J que resolve isso. Eu segui isso e adicionei slf4j-simple-1.6.1.jarao meu aplicativo junto com o slf4j-api-1.6.1.jarque eu já tinha.

Isso resolveu meu problema. Espero que ajude outras pessoas que têm esse problema.

Prasanna
fonte
4
Sim, o erro ocorre como também mencionado aqui - slf4j.org/manual.html Mas agora recebo um novo erro - Causado por: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
david blaine
1
"Como Ceki apontou, havia muitos jarros que o WebSphere estava usando e um deles estava apontando para uma versão mais antiga do slf4j". - Tanto para Maven cuidar de dependências! Que piada.
AndroidDev
167
Ei você Maven usuários: mvnrepository.com/artifact/org.slf4j/slf4j-simple/1.6.2
Sergio
2
Estou usando 1.7 e tem o mesmo problema. Eu adiciono slf4j-simple-1.7.jar e agora o problema foi resolvido.
Littletiger # 27/15
1
Isso não funciona para mim. O jar slf4j-simple não pega o log4j.properties. Em vez disso, uso a implementação adicionando slf4j-log4j12 e log4j jar, o que funciona bem para mim.
flyrain 14/02/19
379

Isto é para aqueles que vieram aqui da pesquisa do google.

Se você usa o maven, adicione o seguinte

   <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>

Ou

   <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>
Igor Katkov
fonte
1
Existe uma razão para slf4j-simplenão ter a mesma versão que slf4j-api? Eles provavelmente funcionariam bem juntos, mas acho que é mais seguro e uma prática melhor, em geral, que eles usem a mesma versão. Além disso, se você precisar habilitar o log somente no console, por exemplo, ao executar testes de unidade, isso slf4j-simpleserá suficiente (embora fosse para mim).
Ivaylo Slavov
23
AFAIK, você deve ter apenas 1 impl do slf4j, ou seja, slf4j-log4j12 OU slf4j-simple, não os dois.
Ondra Žižka
@Igor KatKov, isso funciona apenas na máquina local, mas com o mesmo erro no Jenkins, não tenho certeza do que está acontecendo de errado. você pode esclarecer
vikramvi
O slf4j-api requer uma configuração que não está disponível quando você a executa pela primeira vez (e não editou nenhum arquivo de configuração). O uso do slf4j-simple permitirá que você use o Logger básico sem configurar nenhum arquivo, exceto o WYSIWYG. Você pode voltar ao slf4j-api depois de aprender a configurar os arquivos e personalizar a saída do Logger como desejar. (Ainda aprendendo onde existem e como editá-los eu mesmo)
chrips
53

Basta adicionar isso ao seu pom.xml :

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>1.7.21</version>
</dependency>
Benny Neugebauer
fonte
3
A solução funcionou para mim; Vale a pena apontar para a documentação (onde encontrei o erro explicado): slf4j.org/codes.html#StaticLoggerBinder
Witold Kaczurba
2
nada além de isso funcionou para mim ao executar um exemplo simples de produtor kafka. muito obrigado!
Viren
@WitoldKaczurba está certo. Eu estava tendo o mesmo problema ao usar dependência usando o maven. Eu apenas pesquisei no Google e fui para o slf4j.org/codes.html#StaticLoggerBinder, que indica o problema e sua solução. Eu estava usando o slf4j-api versão 1.7.25. Após verificar a documentação no link mencionado, usei <dependência> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.25</version> </dependency>e o problema foi resolvido
Mohammad Anas
Eu não entendo o objetivo de usar o Maven se as bibliotecas que precisam de algum logger (por exemplo, guidão que precise do slf4j) não o declarem em seu pom. De qualquer forma: obrigado.
Eric Duminil 17/04
No meu caso, isso não é solução. São apenas informações ocultas que existem versões incompatíveis do slf4j e log4j ou outro plug-in.
hariprasad 28/04
42

Você precisa adicionar seguinte arquivo jar no classpath: slf4j-simple-1.6.2.jar. Se você não o possui, faça o download. Consulte http://www.slf4j.org/codes.html#multiple_bindings

Ashish
fonte
Mas não tenho esse jar no meu caminho de classe tcServer, é isso que me confunde. Eu não entendo como eu não precisa de um frasco adicional na tcServer mas fazer em WebSphere
JJ180
1
Funcionou para mim e muito mais simples que a resposta aceita. A versão 1.7.7 também funcionou.
La-comadreja
1
Eu já tinha jul-to-slf4jno meu pom.xmle apenas adicionei slf4j-simpleantes e funciona bem.
Slugmandrew
Como alguém simplesmente adiciona o arquivo jar ao caminho da classe?
Dean013
Por favor, você pode me explicar qual é o caminho da classe? Onde é? Eu não entendo
Rose8525
36

Algumas respostas aqui recomendam adicionar a dependência slf4j-simple ao seu arquivo maven pom. Você pode querer verificar a versão mais atual.

Em https://mvnrepository.com/artifact/org.slf4j/slf4j-simple, você encontrará a versão mais recente do SLF4J Simple Binding. Escolha a que melhor combina com você (ainda a versão 1.7.26 de 2019-02 é a versão estável a partir de 2019-07) e inclua-a no seu pom.xml.

Para sua conveniência, algumas dependências são mostradas aqui - mas elas podem não estar atualizadas quando você lê isso!

Versão alfa de 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>

Versão beta de fevereiro de 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>

Versão estável 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>

Eu removi a parte do teste de escopo graças ao comentário abaixo.

Wolfgang Fahl
fonte
6
por que você usa <scope>test</scope>? Na minha experiência, eu pelo menos preciso de runtimeescopo para garantir que slf4j-simpleo caminho de classe esteja no caminho. Curioso como você conseguiu isso funcione apenas com testalcance ...
eCoE
Obrigado por apontar isto. Eu removi a tag de escopo da minha resposta de acordo. Foi um problema de recortar e colar - o link que estou fornecendo fornece a dependência beta dessa maneira.
Wolfgang Fahl
27

Eu estava enfrentando o mesmo erro. Eu configurei slf4j-api, slf4j-log4j12 e log4j, no meu desenvolvimento local. Toda a configuração estava correta, mas a dependência do slf4j-log4j12, copiada do mvnrepository, tinha escopo de teste <scope>test</scope>. Quando eu removi isso tudo está bem.

Às vezes, erros tolos quebram nossa cabeça;)

thangaraj
fonte
1
Graças um milhão! Eu tinha o mesmo problema e estava prestes a desistir até encontrar a sua postagem!
Ergodyne
1
Isso também me ajudou
cod3min3
27

Em algum momento deveríamos ver a nota do aviso SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details..

Isso acontece quando nenhuma ligação SLF4J apropriada foi encontrada no caminho da classe

Você pode pesquisar o motivo pelo qual esse aviso ocorre.
Adicionando um do frasco de *slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jarou logback-classic.jar*para o caminho de classe deve resolver o problema.

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

por exemplo, adicione o código acima ao seu build.gradleou o código correspondente ao pom.xmlprojeto maven.

Edward
fonte
15

colocar o arquivo slf4j-log4j12-1.6.4.jarno caminho de classe fará o truque.

stones333
fonte
6
ou adicionar a dependência em seu pom <dependency> <groupId> org.slf4j </ groupId> <artifactId> slf4j-log4j12 </ artifactId> </ dependency>
Enkor
11

Se você estiver usando o maven no gerenciamento de dependências, poderá adicionar a seguinte dependência no pom.xml

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

Para usuários não-Maven Faça o download da biblioteca e coloque-a no caminho de classe do projeto.

Aqui você pode ver detalhes: http://www.mkyong.com/wicket/java-lang-classnotfoundexception-org-slf4j-impl-staticloggerbinder/

shohan
fonte
1
Também para usuários maven, descobri que precisava adicionar o seguinte ao pom.xml, que também traz o logback-core automaticamente: <dependency> <groupId> ch.qos.logback </groupId> <artifactId> logart-classic </ artifactId> <versão> 1.0.9 </ versão> </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 Procure pelo comentário sarxos como mencionado por @Paul e adicione logback-classic. Outra abordagem de mudança para <artifactId>slf4j-simple</artifactId>partir <artifactId>slf4j-api</artifactId>também faz o trabalho. É ilustrado aqui
Abhijeet
10

O SLF4j é uma abstração para várias estruturas de log . Portanto, além de ter o slf4j, você precisa incluir qualquer estrutura de registro, como log4j ou logback (etc), no seu caminho de classe.
Para ter uma idéia, consulte o Primeiro passo do bebê em http://logback.qos.ch/manual/introduction.html

Anver Sadhat
fonte
2
A adição de logback corrigiu isso para mim. Coloquei o último clássico de logback no pom (1.1.7) e ele falhou porque a dependência do slf4j era muito antiga (1.6.2). Fazer o downgrade do logback para 1.0.0 e deixar o slf4j em 1.6.x funcionou, assim como atualizar o slf4j para 1.7.20 e deixar o logback em 1.1.7.
ECDragon # 9/16
5

Slf4j é uma fachada para as estruturas de log subjacentes, como log4j, logback, java.util.logging.

Para conectar-se às estruturas subjacentes, o slf4j usa uma ligação.

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

O erro acima é gerado se o jar de ligação estiver ausente. Você pode baixar este jar e adicioná-lo ao caminho de classe.

Para dependência maven,

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

Essa dependência, além do slf4j-log4j12-1.7.21.jar, puxará o slf4j-api-1.7.21.jar e o log4j-1.2.17.jar para o seu projeto

Referência: http://www.slf4j.org/manual.html

Venkatesh Mankena
fonte
Sua solução foi a única que funcionou para mim, obrigado!
Edenshaw 19/09/18
5

Eu estava enfrentando o problema semelhante com aplicativos Spring-boot-2 com a biblioteca Java 9.

A adição da seguinte dependência no meu pom.xml resolveu o problema para mim:

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

No caso do Websphere, você tem uma versão mais antiga do slf4j-api.jar, 1.4.x. ou 1.5.x em algum lugar. O comportamento observado no tcServer, com failover para o NOP, ocorre no slf4j versões 1.6.0 e posterior. Certifique-se de estar usando slf4j-api-1.6.x.jar em todas as plataformas e de que nenhuma versão mais antiga do slf4j-api seja colocada no caminho da classe.

Ceki
fonte
Obrigado, verifiquei meu caminho de classe do WebSphere 6.1 e não vejo nenhuma outra versão do slf4j. Por exemplo, fiz uma pesquisa no meu sistema de arquivos do WebSphere por jar slf4j e só recebi minha versão 1.6. Você sabe se o WebSphere vem empacotado com slf4j?
JJ180 20/09/11
Tudo é possível, mas ficaria muito surpreso se o WebSphere viesse incluído com o slf4j-api. Pacotes de solda slf4j-api.jar. Você está usando o Weld?
Ceki 21/09
4

Eu entrei nesse problema quando recebo o seguinte erro:

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 eu estava usando slf4j-api-1.7.5.jarno meu libs.

Apesar de ter tentado com todos os frascos de complemento sugeridos slf4j-log4j12-1.7.5.jar, slf4j-simple-1.7.5a mensagem de erro ainda persistia. O problema finalmente foi resolvido quando adicioneislf4j-jdk14-1.7.5.jar as bibliotecas java.

Obtenha o pacote completo do slf4j em http://www.slf4j.org/download.html

user278049
fonte
4

Adicione as seguintes dependências ao pom para resolver esse 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>
gowthamjs23
fonte
Acabei de incluir a primeira dependência - como apontado em outra resposta - e funciona. Ambas as dependências não resolvem o problema para mim.
RubioRic 14/09
E deseja usar o maven local em vez do mached Bundled da Intellij.
Abdul Gaffar 11/01
4

Como uma alternativa para a inclusão de jar e soluções puras do maven, você pode incluí-lo no maven with gradle.

Exemplo para versão 1.7.25

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

Coloque isso dentro das dependências do seu build.gradlearquivo.

Vrakfall
fonte
3

Estou trabalhando em um projeto Struts2 + Spring. Então, precisa de uma dependênciaslf4j-api-1.7.5.jar .

Se eu executar o projeto, estou recebendo um erro como

Falha ao carregar a classe "org.slf4j.impl.StaticLoggerBinder"

Resolvi meu problema adicionando o slf4j-log4j12-1.7.5.jar.

Portanto, adicione este jar no seu projeto para resolver o problema.

softmage99
fonte
3

Como o Manual do SLF4J declara

A Fachada de Log Simples para Java (SLF4J) serve como uma fachada ou abstração simples para várias estruturas de log, como java.util.logging, logback e log4j.

e

O aviso desaparecerá assim que você adicionar uma ligação ao seu caminho de classe.

Portanto, você deve escolher qual ligação deseja usar.

Ligação NoOp (slf4j-nop)

Ligação para NOP, descartando silenciosamente todos os logs.

Verifique a versão nova em https://search.maven.org/search?q=g:org.slf4j%20AND%20a:slf4j-nop&core=gav

Ligação simples (slf4j-simple)

gera todos os eventos para System.err. Somente mensagens de nível INFO e superior são impressas. Essa ligação pode ser útil no contexto de aplicativos pequenos.

Verifique a versão nova em https://search.maven.org/search?q=g:org.slf4j%20AND%20a:slf4j-simple&core=gav

Ligações para as estruturas de log (java.util.logging, logback, log4j)

Você precisará de uma dessas ligações se estiver gravando log em um arquivo.

Veja a descrição e as instruções em https://www.slf4j.org/manual.html#projectDep


Minha opinião

Eu recomendaria o Logback porque é um sucessor do log4j projeto .

Verifique a versão mais recente da encadernação em https://search.maven.org/search?q=g:ch.qos.logback%20AND%20a:logback-classic&core=gav

Você obtém a saída do console imediatamente, mas se precisar gravar logs no arquivo, basta colocar a FileAppenderconfiguração no src/main/resources/logback.xmlou no src/test/resources/logback-test.xmlseguinte:

<?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>

(Veja a descrição detalhada no manual: https://logback.qos.ch/manual/configuration.html )

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

Coloque a dependência mencionada acima no arquivo pom.xml

Ajay
fonte
Mas lembre-se de verificar a versão mais recente.
user1053510
2

Eu adicionei essa dependência para resolver esse problema:

https://mvnrepository.com/artifact/org.slf4j/slf4j-simple/1.7.25
Amado Saladino
fonte
1

De acordo com a documentação oficial do SLF4J

Falha ao carregar a classe org.slf4j.impl.StaticLoggerBinder

Essa mensagem de aviso é relatada quando a classe org.slf4j.impl.StaticLoggerBinder não pôde ser carregada na memória. Isso acontece quando nenhuma ligação SLF4J apropriada foi encontrada no caminho da classe. Colocar um (e apenas um) de slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar ou logback-classic.jar no caminho da classe deve resolver o problema.

Basta adicionar este jar junto com slf4j api.jar ao seu caminho de classe para fazer as coisas. Boa sorte

Roushan
fonte
1

Eu resolvo adicionando esta biblioteca: slf4j-simple-1.7.25.jar Você pode fazer o download no site oficial https://www.slf4j.org/download.html

Luis Manrique
fonte
1

encontrou o mesmo problema no payara 5.191

jcl-over-slf4j junto com slf4j-log4j12 resolveram o 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>
telman shahbazov
fonte
0

Eu sei que este post é um pouco antigo, mas no caso de mais alguém encontrar esse problema:

Adicione slf4j-jdk14-XXXjar ao seu CLASSPATH (onde XXX é o número da versão - por exemplo, slf4j-jdk14-1.7.5.jar).

HTH Peter

midiman
fonte
1
Você está sugerindo que os usuários retornem ao log JDK1.4 para resolver um problema do caminho de classe? Veja também esta entrada da FAQ: slf4j.org/faq.html#need_to_recompile
mwhs
0

Eu uso Jena e adiciono a dependência de companheiros ao pom.xml

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

Eu tento adicionar slf4j-simple, mas simplesmente desaparece o erro "SLF4J: Falha ao carregar a classe" org.slf4j.impl.StaticLoggerBinder "", mas o logback-classic mostra mais informações.

O documento oficial

Pingjiang Li
fonte
0

a solução é indicada no site oficial:

Falha ao carregar a classe org.slf4j.impl.StaticLoggerBinder

Essa mensagem de aviso é relatada quando a classe org.slf4j.impl.StaticLoggerBinder não pôde ser carregada na memória. Isso acontece quando nenhuma ligação SLF4J apropriada foi encontrada no caminho da classe. Colocar um (e apenas um) de slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar ou logback-classic.jar no caminho da classe deve resolver o problema. DESDE 1.6.0 A partir do SLF4J versão 1.6, na ausência de uma ligação, o SLF4J assumirá o padrão de implementação do criador de logs sem operação (NOP). Se você é responsável pelo empacotamento de um aplicativo e não se preocupa com o log, colocar o slf4j-nop.jar no caminho da classe do seu aplicativo se livrará dessa mensagem de aviso. Observe que os componentes incorporados, como bibliotecas ou estruturas, não devem declarar dependência de nenhuma ligação do SLF4J, mas apenas do slf4j-api.

solução: eu adicionei ao meu projeto usando a pesquisa maven sobre intellij e escolhi o slf4j-jdk14.jar.

Badr Bellaj
fonte
0

Provavelmente o seu problema foi causado por <scope>test</scope>(em alguns casos também <scope>provided</scope>), como mencionado @thangaraj .

A documentação diz:

Esse escopo indica que a dependência não é necessária para o uso normal do aplicativo e está disponível apenas para as fases de compilação e execução de teste. As dependências de teste não são transitivas e estão presentes apenas para caminhos de classe de teste e execução.

Portanto, se você não precisa de dependências para fins de teste, pode usar em vez de (o que verá no 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>

Sem escopos (por padrão, o escopo de compilação é quando nenhum outro escopo é fornecido):

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

É o mesmo que:

 <!-- 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>
invzbl3
fonte
0

Aqui estão os meus 5 centavos ...

Eu tive os mesmos problemas ao executar testes. Então, eu o corrigi adicionando uma implementação apenas para o tempo de execução de teste. Estou usando o gradle para este projeto.

// https://mvnrepository.com/artifact/ch.qos.logback/logback-classic

Grupo testRuntimeOnly: 'ch.qos.logback', nome: 'logback-classic', versão: '1.2.3'

Esteban
fonte
0

Para mim, o problema era: usando o Hibernate, vi que ele já usava slf4j e já estava no meu caminho de classe, então decidi usá-lo. A próxima etapa - adicionando o imlementor para slf4j, então adicionei ao maven:

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

Mas falhou com erro! SLF4J: falha ao carregar a classe "org.slf4j.impl.StaticLoggerBinder"

A solução foi: a dependência do slib4j do Hibernate era a versão 1.7.26 e eu adicionei a dependência menor da versão 1.7.25 . Então, quando eu consertei isso - tudo ficou bem

JeSa
fonte
0

Não adicionei nenhuma dependência, apenas mudei a maneira como as consumia.

Código de visualização

(Remova o comentário deste código se você estiver usando a versão de pesquisa elástica <7.0)

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

Código atual

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

Estou usando o bulkrequest e, com isso, removo esse erro.

Dante Astudillo
fonte