SLF4J: Error al cargar la clase "org.slf4j.impl.StaticLoggerBinder"

619

Mi aplicación se implementará tanto en tcServer como en WebSphere 6.1. Esta aplicación usa ehCache y, por lo tanto, requiere slf4j como dependencia. Como resultado, agregué el jar slf4j-api.jar (1.6) a mi paquete de archivos war.

La aplicación funciona bien en tcServer, excepto por el siguiente error:

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.

Sin embargo, cuando despliegue en WebSphere obtengo un java.lang.NoClassDefFoundError: org.slf4j.impl.StaticLoggerBinder.

También acompañado de Failed to load class "org.slf4j.impl.StaticMDCBinder"

He comprobado las rutas de clase de ambos servidores de aplicaciones y no hay otro jar slf4j.

¿Alguien tiene alguna idea de lo que puede estar sucediendo aquí?

JJ180
fuente
Este artículo resolvió mi problema
Contador م

Respuestas:

517

Tuve el mismo problema con WebSphere 6.1. Como señaló Ceki, había toneladas de frascos que WebSphere estaba usando y uno de ellos apuntaba a una versión anterior de slf4j.

El retroceso No-Op solo ocurre con slf4j -1.6+, por lo que cualquier cosa anterior generará una excepción y detendrá su implementación.

Hay una documentación en el sitio SLf4J que resuelve esto. Seguí eso y agregué slf4j-simple-1.6.1.jara mi aplicación junto con slf4j-api-1.6.1.jarlo que ya tenía.

Esto resolvió mi problema. Espero que ayude a otros que tienen este problema.

Prasanna
fuente
44
Sí, el error también se menciona aquí: slf4j.org/manual.html Pero ahora recibo un nuevo error: Causado por: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
david blaine
1
"Como señaló Ceki, había toneladas de frascos que WebSphere estaba usando y uno de ellos apuntaba a una versión anterior de slf4j". - ¡Tanto por Maven cuidando las dependencias! Que broma.
AndroidDev
167
Hola, usuarios de MAVEN: mvnrepository.com/artifact/org.slf4j/slf4j-simple/1.6.2
Sergio
2
Estoy usando 1.7 y tiene el mismo problema. Agregué slf4j-simple-1.7.jar y ahora el problema está resuelto.
littletiger
1
Esto no funciona para mi. El jar slf4j-simple no recoge log4j.properties. En cambio, uso la implementación agregando slf4j-log4j12 y log4j jar, que me funciona bien.
flyrain
379

Esto es para aquellos que vinieron aquí desde la búsqueda de Google.

Si usa Maven simplemente agregue lo siguiente

   <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>
Igor Katkov
fuente
1
¿Hay alguna razón para slf4j-simpleno ser la misma versión que slf4j-api? Probablemente funcionarían bien juntos, pero creo que es más seguro y una mejor práctica en general hacer que usen la misma versión. Además, si necesita habilitar el registro solo en la consola, por ejemplo, cuando ejecuta pruebas unitarias, slf4j-simpleparece ser suficiente (aunque fue para mí).
Ivaylo Slavov
23
AFAIK debe tener solo 1 impl de slf4j, es decir, slf4j-log4j12 O slf4j-simple, no ambos.
Ondra Žižka
@Igor KatKov esto funciona solo en la máquina local, pero obtener el mismo error en Jenkins no está seguro de qué está yendo mal ¿podría
aclararme
slf4j-api requiere una configuración que no está disponible la primera vez que la ejecuta (y no ha editado ningún archivo de configuración). El uso de slf4j-simple le permitirá usar el registrador básico sin configurar ningún archivo que no sea WYSIWYG. Luego puede volver a slf4j-api una vez que haya aprendido a configurar los archivos y personalizar la salida del registrador como desee. (Todavía estoy aprendiendo dónde están y cómo editarlos yo mismo)
salta el
53

Simplemente agregue esto a su pom.xml :

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>1.7.21</version>
</dependency>
Benny Neugebauer
fuente
3
La solución funcionó para mi; Vale la pena señalar la documentación (donde encontré el error explicado): slf4j.org/codes.html#StaticLoggerBinder
Witold Kaczurba
2
nada más que esto funcionó para mí mientras ejecutaba un sencillo ejemplo de productor de kafka. ¡gracias un montón!
Viren
@WitoldKaczurba tiene razón. Estaba teniendo el mismo problema mientras usaba dependencia usando maven. Simplemente busqué en Google y fui a slf4j.org/codes.html#StaticLoggerBinder que indica el problema y su solución. Estaba usando slf4j-api versión 1.7.25. Después de verificar la documentación en el enlace mencionado, acabo de usar <dependencia> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.25</version> </dependency>y el problema se resolvió
Mohammad Anas
No entiendo el punto de usar Maven si las bibliotecas que necesitan algún registrador (por ejemplo, Handlebars que necesita slf4j) no lo declaran en su pom. Gracias de todas formas.
Eric Duminil
En mi caso, esto no es la solución. Solo oculta información, que hay versiones incompatibles de slf4j y log4j u otro complemento.
Hariprasad
42

Es necesario añadir siguiente archivo JAR en la ruta de clases: slf4j-simple-1.6.2.jar. Si no lo tiene, descárguelo. Consulte http://www.slf4j.org/codes.html#multiple_bindings

Ashish
fuente
Pero no tengo esa jarra en mi classpath tcServer, eso es lo que me confunde. No entiendo cómo no necesito un jar adicional en tcServer pero sí en WebSphere
JJ180
1
Funcionó para mí, y mucho más simple que la respuesta aceptada. La versión 1.7.7 también funcionó.
La-comadreja
1
Ya tenía jul-to-slf4jen mi pom.xmly acabo de agregar slf4j-simpleantes y funciona bien.
slugmandrew
¿Cómo se agrega simplemente el archivo jar al classpath?
Dean013
Por favor, ¿puedes explicarme cuál es la ruta de clase? ¿dónde está? No entiendo
Rose8525
36

Algunas respuestas aquí recomiendan agregar la dependencia slf4j-simple a su archivo maven pom. Es posible que desee verificar la versión más actual.

En https://mvnrepository.com/artifact/org.slf4j/slf4j-simple , encontrará la última versión de SLF4J Simple Binding. Elija el que mejor se adapte a usted (todavía 1.7.26 de 2019-02 es la versión estable a partir de 2019-07) e inclúyalo en su pom.xml.

Para su comodidad, aquí se muestran algunas dependencias, ¡pero es posible que no estén actualizadas cuando lea esto!

Versión 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>

Versión Beta de febrero 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>

Versión estable 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>

Eliminé la parte de prueba de alcance gracias al comentario a continuación.

Wolfgang Fahl
fuente
66
¿Por qué se utiliza <scope>test</scope>? En mi experiencia, al menos necesito un runtimealcance para garantizar que slf4j-simpleesté en el classpath. Curioso cómo conseguiste que esto funcionara solo con testalcance ...
ecoe
Gracias por señalar esto. Eliminé la etiqueta del alcance de mi respuesta en consecuencia. Fue un problema de cortar y pegar: el enlace que estoy proporcionando proporciona la dependencia beta de esta manera.
Wolfgang Fahl
27

Estaba enfrentando el mismo error. He configurado slf4j-api, slf4j-log4j12 y log4j, en mi desarrollo local. Toda la configuración estaba bien, pero la dependencia slf4j-log4j12 que copié desde mvnrepository tenía un alcance de prueba <scope>test</scope>. Cuando eliminé esto, todo está bien.

Algunas veces los errores tontos nos rompen la cabeza;)

Thangaraj
fuente
1
¡Un millón de gracias! ¡Tuve el mismo problema y estaba a punto de abandonarlo hasta que encontré tu publicación!
Ergodyne
1
Esto también me ayudó
cod3min3
27

En algún momento deberíamos ver la nota de la advertencia SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details..

Esto sucede cuando no se puede encontrar el enlace SLF4J apropiado en la ruta de clase

Puede buscar la razón por la que aparece esta advertencia.
La adición de uno de la jarra de *slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jaro logback-classic.jar*en la ruta de clase debe resolver el problema.

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

por ejemplo, agregue el código anterior a su build.gradleo el código correspondiente pom.xmlpara el proyecto maven.

Eduardo
fuente
15

poner el archivo slf4j-log4j12-1.6.4.jaren el classpath hará el truco.

piedras333
fuente
66
o agregue la dependencia a su pom <dependency> <groupId> org.slf4j </groupId> <artifactId> slf4j-log4j12 </artifactId> </dependency>
enkor el
11

Si está utilizando Maven para la gestión de dependencias, puede agregar la siguiente dependencia en pom.xml

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

Para usuarios que no son Maven Simplemente descargue la biblioteca y póngala en su classpath del proyecto.

Aquí puede ver los detalles: http://www.mkyong.com/wicket/java-lang-classnotfoundexception-org-slf4j-impl-staticloggerbinder/

shohan
fuente
1
También para los usuarios de Maven descubrí que necesitaba agregar lo siguiente en pom.xml, que también trae logback-core automáticamente: <dependency> <groupId> ch.qos.logback </groupId> <artifactId> logback-classic </ artifactId> <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 Busque comentarios sarxos como lo menciona @Paul necesita agregar logback-classic. Otro enfoque de cambio a <artifactId>slf4j-simple</artifactId>from <artifactId>slf4j-api</artifactId>también hace el trabajo. Aquí
Abhijeet,
10

SLF4j es una abstracción para varios marcos de registro . Por lo tanto, aparte de tener slf4j, debe incluir cualquiera de su marco de registro como log4j o logback (etc.) en su classpath.
Para tener una idea, consulte el Primer paso del bebé en http://logback.qos.ch/manual/introduction.html

Anver Sadhat
fuente
2
Agregar logback me arregló esto. Dejé caer el último logback classic en pom (1.1.7) y falló porque la dependencia de slf4j era demasiado antigua (1.6.2). La reducción de logback a 1.0.0 y dejar slf4j en 1.6.x funcionó, al igual que actualizar slf4j a 1.7.20 y dejar logback en 1.1.7.
ECDragon
5

Slf4j es una fachada para los marcos de registro subyacentes como log4j, logback, java.util.logging.

Para conectarse con los marcos subyacentes, slf4j utiliza un enlace.

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

El error anterior se produce si se pierde el jar de enlace. Puede descargar este jar y agregarlo a classpath.

Para la dependencia de Maven,

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

Esta dependencia, además de slf4j-log4j12-1.7.21.jar, extraerá slf4j-api-1.7.21.jar y log4j-1.2.17.jar en su proyecto

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

Venkatesh Mankena
fuente
Su solución fue la única que funcionó para mí, ¡gracias!
Edenshaw
5

Estaba enfrentando un problema similar con las aplicaciones Spring-boot-2 con la biblioteca Java 9.

Agregar la siguiente dependencia en mi pom.xml me resolvió el problema:

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

En el caso de Websphere, tiene una versión anterior de slf4j-api.jar, 1.4.x. o 1.5.x tumbado en alguna parte. El comportamiento que observa en tcServer, que es una conmutación por error a NOP, se produce en slf4j versiones 1.6.0 y posteriores. Asegúrese de estar utilizando slf4j-api-1.6.x.jar en todas las plataformas y de que no haya una versión anterior de slf4j-api en la ruta de clase.

Ceki
fuente
Gracias, he comprobado mi classpath de WebSphere 6.1 y no veo ninguna otra versión de slf4j, por ejemplo, busqué en mi sistema de archivos de WebSphere el jar slf4j y solo obtuve mi versión 1.6. ¿Sabe si WebSphere viene empaquetado con slf4j?
JJ180
Todo es posible, pero me sorprendería mucho si WebSphere viniera incluido con slf4j-api. Paquetes de soldadura slf4j-api.jar. ¿Estás usando Weld?
Ceki
4

Me metí en este problema cuando recibo el siguiente error:

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.

cuando estaba usando slf4j-api-1.7.5.jaren mi libs.

A pesar de que probé con todos los frascos de complemento sugeridos slf4j-log4j12-1.7.5.jar, slf4j-simple-1.7.5el mensaje de error aún persistía. El problema finalmente se resolvió cuando agregué slf4j-jdk14-1.7.5.jarlas bibliotecas de Java.

Obtenga el paquete slf4j completo en http://www.slf4j.org/download.html

usuario278049
fuente
4

Agregue las siguientes dependencias a pom para resolver este 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
fuente
Acabo de incluir la primera dependencia, como se señala en otra respuesta, y funciona. Ambas dependencias no resuelven el problema para mí.
RubioRic
Y quiere usar maven local en lugar de maven Bundled de Intellij.
Abdul Gaffar
4

Como alternativa a la inclusión de jarras y soluciones maven puras, puede incluirlo desde maven con gradle.

Ejemplo para versión 1.7.25

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

Ponga esto dentro de las dependencias de su build.gradlearchivo.

Vrakfall
fuente
3

Estoy trabajando en un proyecto Struts2 + Spring. Entonces necesita una dependenciaslf4j-api-1.7.5.jar .

Si ejecuto el proyecto, recibo un error como

Error al cargar la clase "org.slf4j.impl.StaticLoggerBinder"

Resolví mi problema agregando el slf4j-log4j12-1.7.5.jar.

Entonces agregue este jar en su proyecto para resolver el problema.

softmage99
fuente
3

Como dice el Manual SLF4J

Simple Logging Facade para Java (SLF4J) sirve como una simple fachada o abstracción para varios marcos de registro, como java.util.logging, logback y log4j.

y

La advertencia desaparecerá tan pronto como agregue un enlace a su ruta de clase.

Por lo tanto, debe elegir qué enlace desea usar.

Enlace NoOp (slf4j-nop)

Enlace para NOP, descartando silenciosamente todos los registros.

Verifique la versión nueva en https://search.maven.org/search?q=g:org.slf4j%20AND%20a:slf4j-nop&core=gav

Encuadernación simple (slf4j-simple)

envía todos los eventos a System.err. Solo se imprimen los mensajes de nivel INFO y superior. Este enlace puede ser útil en el contexto de pequeñas aplicaciones.

Verifique la versión nueva en https://search.maven.org/search?q=g:org.slf4j%20AND%20a:slf4j-simple&core=gav

Enlaces para los marcos de registro (java.util.logging, logback, log4j)

Necesita uno de estos enlaces si va a escribir el registro en un archivo.

Consulte la descripción y las instrucciones en https://www.slf4j.org/manual.html#projectDep


Mi opinión

Recomendaría Logback porque es un sucesor de log4j proyecto .

Consulte la última versión del enlace en https://search.maven.org/search?q=g:ch.qos.logback%20AND%20a:logback-classic&core=gav

Obtiene la salida de la consola de la caja, pero si necesita escribir registros en el archivo, simplemente coloque la FileAppenderconfiguración en src/main/resources/logback.xmlo al src/test/resources/logback-test.xmligual que esto:

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

(Consulte la descripción detallada en el manual: https://logback.qos.ch/manual/configuration.html )

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

Ponga la dependencia mencionada anteriormente en el archivo pom.xml

Ajay
fuente
Pero recuerde revisar la última versión.
user1053510
2

Agregué esta dependencia para resolver este problema:

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

Según la documentación oficial de SLF4J

Error al cargar la clase org.slf4j.impl.StaticLoggerBinder

Este mensaje de advertencia se informa cuando la clase org.slf4j.impl.StaticLoggerBinder no se pudo cargar en la memoria. Esto sucede cuando no se puede encontrar el enlace SLF4J apropiado en la ruta de clase. Colocar uno (y solo uno) de slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar o logback-classic.jar en la ruta de clase debería resolver el problema.

Simplemente agregue este jar junto con slf4j api.jar a su classpath para hacer las cosas. La mejor de las suertes

Roushan
fuente
1

Encontré el mismo problema en payara 5.191

jcl-over-slf4j junto con slf4j-log4j12 resolvió el 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
fuente
0

Sé que esta publicación es un poco antigua, pero en caso de que alguien más se encuentre con este problema:

Agregue slf4j-jdk14-XXXjar a su CLASSPATH (donde XXX es el número de versión, por ejemplo, slf4j-jdk14-1.7.5.jar).

HTH Peter

midiman
fuente
1
¿Está sugiriendo que los usuarios deberían volver al registro JDK1.4 para resolver un problema de classpath? Consulte
mwhs
0

Yo uso Jena y agrego la dependencia de pom.xml

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

Intento agregar slf4j-simple pero simplemente desaparece el error "SLF4J: Error al cargar la clase" org.slf4j.impl.StaticLoggerBinder "" pero logback-classic muestra información más detallada.

El documento oficial

Pingjiang Li
fuente
0

la solución se indica en su sitio web oficial:

Error al cargar la clase org.slf4j.impl.StaticLoggerBinder

Este mensaje de advertencia se informa cuando la clase org.slf4j.impl.StaticLoggerBinder no se pudo cargar en la memoria. Esto sucede cuando no se puede encontrar un enlace SLF4J apropiado en la ruta de clase. Colocar uno (y solo uno) de slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar o logback-classic.jar en la ruta de clase debería resolver el problema. DESDE 1.6.0 A partir de la versión 1.6 de SLF4J, en ausencia de un enlace, SLF4J pasará por defecto a una implementación de registrador sin operación (NOP). Si usted es responsable de empaquetar una aplicación y no le importa el inicio de sesión, colocar slf4j-nop.jar en la ruta de clase de su aplicación eliminará este mensaje de advertencia. Tenga en cuenta que los componentes integrados como bibliotecas o marcos no deberían declarar una dependencia en ningún enlace SLF4J sino que solo dependen de slf4j-api.

solución: he agregado a mi proyecto usando la investigación de maven en intellij y he elegido el slf4j-jdk14.jar.

Badr Bellaj
fuente
0

Lo más probable es que su problema se deba a<scope>test</scope> (en algunos casos también <scope>provided</scope>), como se mencionó en @thangaraj .

La documentación dice:

Este alcance indica que la dependencia no es necesaria para el uso normal de la aplicación, y solo está disponible para las fases de compilación y ejecución de prueba. Las dependencias de prueba no son transitivas y solo están presentes para las rutas de clase de prueba y ejecución.

Entonces, si no necesita dependencias para fines de prueba, puede usar en lugar de (lo que verá en 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>

Sin ningún ámbito (de forma predeterminada sería un ámbito de compilación cuando no se proporciona ningún otro ámbito):

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

Esto es lo mismo 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
fuente
0

Aquí están mis 5 centavos ...

Tuve los mismos problemas al ejecutar pruebas. Así que lo arreglé agregando una implementación solo para el tiempo de ejecución de prueba. Estoy usando gradle para este proyecto.

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

grupo testRuntimeOnly: 'ch.qos.logback', nombre: 'logback-classic', versión: '1.2.3'

Esteban
fuente
0

Para mí, el problema era: al usar Hibernate, vi que ya usaba slf4j, y ya estaba en mi classpath, así que decidí usarlo. El siguiente paso: agregar imlementor para slf4j, así que agregué a maven:

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

¡Pero falló con error! SLF4J: Error al cargar la clase "org.slf4j.impl.StaticLoggerBinder"

La solución fue: la dependencia de Hibernate de slf4j era la versión 1.7.26 , y agregué la dependencia de versión menor 1.7.25 . Entonces, cuando arreglé esto, todo se puso bien

JeSa
fuente
0

No agregué ninguna dependencia, solo cambié la forma en que las consumía.

Código de vista previa

(Descomente este código si está utilizando la versión de búsqueda 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 actual

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

Estoy usando bulkrequest y con eso elimino ese error.

Dante Astudillo
fuente