1
resposta

Erro SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".

pom.xml: 4.0.0

<groupId>org.example</groupId>
<artifactId>ecommerce</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
    <maven.compiler.source>21</maven.compiler.source>
    <maven.compiler.target>21</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients -->
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <version>4.0.0</version>
    </dependency>

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

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

Main: package org.example;

import org.apache.kafka.clients.admin.KafkaAdminClient; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.kafka.clients.producer.ProducerRecord; import org.apache.kafka.common.serialization.StringSerializer;

import java.util.Properties;

public class NewOrderMain { public static void main(String[] args) {

    var producer = new KafkaProducer<String, String>(properties());
    var value = "1234,100,1213213123123";
    var record = new ProducerRecord<>("ECOMMERCE_NEW_ORDER", value, value);
    producer.send(record);
}

public static Properties properties(){
    var properties = new Properties();
    properties.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "127.0.0.1:9092");
    properties.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
    properties.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
    return properties;
}

}

Erro: "C:\Users\Arthur Coutinho.jdks\openjdk-21.0.2\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.3.2.2\lib\idea_rt.jar=56591:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.3.2.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath "D:\Projetos\Java\ecommerce\target\classes;C:\Users\Arthur Coutinho.m2\repository\org\apache\kafka\kafka-clients\4.0.0\kafka-clients-4.0.0.jar;C:\Users\Arthur Coutinho.m2\repository\com\github\luben\zstd-jni\1.5.6-6\zstd-jni-1.5.6-6.jar;C:\Users\Arthur Coutinho.m2\repository\org\lz4\lz4-java\1.8.0\lz4-java-1.8.0.jar;C:\Users\Arthur Coutinho.m2\repository\org\xerial\snappy\snappy-java\1.1.10.5\snappy-java-1.1.10.5.jar;C:\Users\Arthur Coutinho.m2\repository\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar" org.example.NewOrderMain 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.

Process finished with exit code 0 Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Arthur!

O erro que você está enfrentando, relacionado ao SLF4J, ocorre porque falta uma implementação concreta do logger. No seu caso, você já adicionou a dependência slf4j-simple, que deveria fornecer essa implementação. No entanto, pode haver um problema de compatibilidade ou configuração.

Aqui estão algumas sugestões para resolver o problema:

  1. Verifique a versão do SLF4J: Certifique-se de que as versões do slf4j-api e slf4j-simple são compatíveis entre si. Você pode tentar usar a mesma versão para ambos.

  2. Limpe e construa novamente o projeto: Às vezes, o problema pode ser resolvido simplesmente limpando e reconstruindo o projeto. No IntelliJ, você pode fazer isso indo em Build > Rebuild Project.

  3. Verifique o classpath: Certifique-se de que todas as dependências estão corretamente incluídas no classpath. Você pode verificar isso no IntelliJ em File > Project Structure > Modules > Dependencies.

  4. Atualize as dependências do Maven: Execute mvn clean install no terminal para garantir que todas as dependências estão atualizadas e corretamente baixadas.

  5. Verifique conflitos de dependências: Use o comando mvn dependency:tree para verificar se há conflitos de versão entre as dependências do SLF4J.

Se nenhuma dessas soluções funcionar, considere verificar a documentação do SLF4J para mais detalhes sobre o erro: SLF4J Error Codes.

Bons estudos!