Anotações Hibernate erro org.slf4j.impl.StaticLoggerBinder"

Olá!

O netbeans me informa o erro abaixo

SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”.
SLF4J: See SLF4J Error Codes for further details.
Exception in thread “main” java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder

Não consigo solucionar este problema

A classe segue abaixo;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/*

  • Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
  • Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
    */

/**
*

  • @author jairo
    */
    @Entity
    @Table(name = “pessoas”)
    public class Pessoas implements Serializable {
    @Id
    private int pesCodigo;
    @Column
    private String pesNome;
    @Column
    private String pesEmail;
    @Column
    private String pesFone;
    @Column
    private String pesCpf;
    @Column
    private String pesCidade;

    /**

    • @return the pesCodigo
      */
      public int getPesCodigo() {
      return pesCodigo;
      }

    /**

    • @param pesCodigo the pesCodigo to set
      */
      public void setPesCodigo(int pesCodigo) {
      this.pesCodigo = pesCodigo;
      }

    /**

    • @return the pesNome
      */
      public String getPesNome() {
      return pesNome;
      }

    /**

    • @param pesNome the pesNome to set
      */
      public void setPesNome(String pesNome) {
      this.pesNome = pesNome;
      }

    /**

    • @return the pesEmail
      */
      public String getPesEmail() {
      return pesEmail;
      }

    /**

    • @param pesEmail the pesEmail to set
      */
      public void setPesEmail(String pesEmail) {
      this.pesEmail = pesEmail;
      }

    /**

    • @return the pesFone
      */
      public String getPesFone() {
      return pesFone;
      }

    /**

    • @param pesFone the pesFone to set
      */
      public void setPesFone(String pesFone) {
      this.pesFone = pesFone;
      }

    /**

    • @return the pesCpf
      */
      public String getPesCpf() {
      return pesCpf;
      }

    /**

    • @param pesCpf the pesCpf to set
      */
      public void setPesCpf(String pesCpf) {
      this.pesCpf = pesCpf;
      }

    /**

    • @return the pesCidade
      */
      public String getPesCidade() {
      return pesCidade;
      }

    /**

    • @param pesCidade the pesCidade to set
      */
      public void setPesCidade(String pesCidade) {
      this.pesCidade = pesCidade;
      }
      }

Classe para gerar a tabela no BD segue abaixo;

/*

  • Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
  • Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
    */

/**
*

  • @author jairo
    */
    import org.hibernate.cfg.AnnotationConfiguration;
    import org.hibernate.tool.hbm2ddl.SchemaExport;
    public class GeraTabelaBancoDados {
    public static void main(String args[]){
    AnnotationConfiguration cfg = new AnnotationConfiguration();
    cfg.addAnnotatedClass(Pessoas.class);
    SchemaExport se = new SchemaExport(cfg);
    se.create(true, true);
    }
    }

Você está com as dependências do SLF4J ?

Olá staroski!

Estou com o jar slf4j-api-1.5.8.jar no netbeans

Veja se vc tem essa classe no seu .jar:

org/slf4j/impl/StaticLoggerBinder

Se não tiver, provavelmente vc esta com o .jar errado.

Dúvida minha, vc não esta utilizando o maven ou gradle?

Olá d3z4013!

tenho na minha biblioteca netbeans o slf4j-api-1.5.8.jar

Será que esta referenciado de maneira correta? Durante a codificação o import consegue encontrar a classe dentro do .jar? Se estiver, vc vai conseguir utilizar o autocomplete, vai conseguir clicar em cima de um método dessa classe segurando o CTRL e ser direcionado à classe dentro do .jar.

Consegue executar esses passos?

Olá!

Sim ele vai para o jar, conforme imagem abaixo:

Na imagem não mostra a classe no classpath.

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/*

  • Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
  • Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
    */

/**
*

  • @author jairo
    */
    @Entity
    @Table(name = “pessoas”)
    public class Pessoas implements Serializable {
    @Id
    @SequenceGenerator(name=“generator_pessoa”, sequenceName = “pessoas_pescodigo_seq”)
    @GeneratedValue(generator = “generator_pessoa”)
    private int pesCodigo;
    @Column(length = 100, nullable = false)
    private String pesNome;
    @Column
    private String pesEmail;
    @Column
    private String pesFone;
    @Column
    private String pesCpf;
    @Column
    private String pesCidade;

    /**

    • @return the pesCodigo
      */
      public int getPesCodigo() {
      return pesCodigo;
      }

    /**

    • @param pesCodigo the pesCodigo to set
      */
      public void setPesCodigo(int pesCodigo) {
      this.pesCodigo = pesCodigo;
      }

    /**

    • @return the pesNome
      */
      public String getPesNome() {
      return pesNome;
      }

    /**

    • @param pesNome the pesNome to set
      */
      public void setPesNome(String pesNome) {
      this.pesNome = pesNome;
      }

    /**

    • @return the pesEmail
      */
      public String getPesEmail() {
      return pesEmail;
      }

    /**

    • @param pesEmail the pesEmail to set
      */
      public void setPesEmail(String pesEmail) {
      this.pesEmail = pesEmail;
      }

    /**

    • @return the pesFone
      */
      public String getPesFone() {
      return pesFone;
      }

    /**

    • @param pesFone the pesFone to set
      */
      public void setPesFone(String pesFone) {
      this.pesFone = pesFone;
      }

    /**

    • @return the pesCpf
      */
      public String getPesCpf() {
      return pesCpf;
      }

    /**

    • @param pesCpf the pesCpf to set
      */
      public void setPesCpf(String pesCpf) {
      this.pesCpf = pesCpf;
      }

    /**

    • @return the pesCidade
      */
      public String getPesCidade() {
      return pesCidade;
      }

    /**

    • @param pesCidade the pesCidade to set
      */
      public void setPesCidade(String pesCidade) {
      this.pesCidade = pesCidade;
      }
      }

import javax.swing.;
import org.hibernate.
;
import org.hibernate.cfg.AnnotationConfiguration;

/*

  • Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
  • Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
    */

/**
*

  • @author jairo
    */
    public class GravaPessoa {
    public static void main(String[] args){
    try{
    AnnotationConfiguration cfg = new AnnotationConfiguration();
    cfg.addAnnotatedClass(Pessoas.class);
    SessionFactory fabrica = cfg.buildSessionFactory();
    Session sessao = fabrica.openSession();

     Pessoas pessoas = new Pessoas();
     pessoas.setPesNome("Jairo Dione");
     pessoas.setPesFone("863333333");
     pessoas.setPesCpf("111111111");
     pessoas.setPesEmail("jairodione@yahoo.com.br");
     
     Transaction trPessoa = sessao.beginTransaction();
     sessao.save(pessoas);
     trPessoa.commit();
     sessao.close();
     }catch(Exception erro){
         JOptionPane.showMessageDialog(null, "Erro de Inseção: "+erro);
     }
    

    }
    }

Amigo, procure entender o que é o “classpath”, que você vai poder conferir se algo está faltando.

Do meu conhecimento não está faltando biblioteca, todas estão no diretório

Sugestões:

  • Abra a biblioteca e confira se tem a classe no package correto.
  • Também, tente estanciar a classe, como teste, no início da execução do seu programa.
  • Debugando/depurando seu programa, tente fazer um Class.forName( "org.slf4j.impl.StaticLoggerBinder" ); e veja se é econtrada.

Se não encontrar eh pq seu programa, por algum motivo, está sendo executado sem ter o jar no classpath.