Erro - SLF4J [RESOLVIDO]

Gente, estou com um problema pra conectar com o banco de dados (postgresql) usando hibernate e annotations…
As classes estão mapeadas, e quando eu vou testar dá o seguinte erro:

SLF4J: This version of SLF4J requires log4j version 1.2.12 or later. See also http://www.slf4j.org/codes.html#log4j_version Initial SessionFactory creation failed.java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V Exception in thread "main" java.lang.ExceptionInInitializerError at dao.HibernateUtil.(HibernateUtil.java:16) at dao.Teste.main(Teste.java:11) Caused by: java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V at org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:159) at org.hibernate.cfg.annotations.Version.(Version.java:15) at org.hibernate.cfg.AnnotationConfiguration.(AnnotationConfiguration.java:56) at dao.HibernateUtil.(HibernateUtil.java:12) ... 1 more Java Result: 1 CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos)

Classe de Teste que peguei num exemplo na internet:

[code]package dao;

import modelo.Cliente;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class Teste {

public static void main(String[] args) {
    
    Session sessao = HibernateTeste.getSessionFactory().openSession();
    Transaction t = sessao.beginTransaction();
    Cliente cliente = new Cliente();
    cliente.setNome("William");
    cliente.setCidade("São José dos campos");
    cliente.setEstado("SP");
    sessao.save(cliente);
    t.commit();
    sessao.close();
    
}

} [/code]

HibernateUtil:

[code]package dao;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateTeste {
private static final SessionFactory sessionFactory;
static {
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
}

public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}

[/code]

Alguém tem idéia do que seja?Já cacei na interent inteira. Até aparecem algumas outras pessoas com o mesmo problema, mas nenhum resolvido.

Camarada, tenta baixar a versão mais recente do hibernate.

Nada resolvido. Peguei o 4.0, mas não funcionou.
Erro:

run: SLF4J: This version of SLF4J requires log4j version 1.2.12 or later. See also http://www.slf4j.org/codes.html#log4j_version Initial SessionFactory creation failed.java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V Exception in thread "main" java.lang.ExceptionInInitializerError at dao.HibernateUtil.<clinit>(HibernateUtil.java:16) at dao.Teste.main(Teste.java:11) Caused by: java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V Java Result: 1 CONSTRUÍDO COM SUCESSO (tempo total: 8 segundos) at org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:159)

Posta aí a lista de jars que você possui.

verifique a versao do jar log4j, segundo a mensagem de erro vc tem que usar uma versao igual ou superior a 1.2.12

Jars:
Lib PostgreSQL JDBC Driver
slf4j-api-1.6.1
slf4j-simple-1.6.1
hibernate-core-4.0.0.beta
hibernate-commons-annotations
ejb3-persistence

Entre outras, mas acho que essas são as envolvidas.

Agora deu outro erro:

run: 3 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final 06/07/2011 20:39:43 org.hibernate.internal.CoreMessageLogger_$logger version INFO: HHH00412:Hibernate [WORKING] 06/07/2011 20:39:43 org.hibernate.internal.CoreMessageLogger_$logger propertiesNotFound INFO: HHH00206:hibernate.properties not found 06/07/2011 20:39:43 org.hibernate.internal.CoreMessageLogger_$logger bytecodeProvider INFO: HHH00021:Bytecode provider name : javassist 06/07/2011 20:39:43 org.hibernate.internal.CoreMessageLogger_$logger configuringFromResource INFO: HHH00043:Configuring from resource: /hibernate.cfg.xml 06/07/2011 20:39:43 org.hibernate.internal.CoreMessageLogger_$logger configurationResource INFO: HHH00040:Configuration resource: /hibernate.cfg.xml 06/07/2011 20:39:43 org.hibernate.internal.CoreMessageLogger_$logger recognizedObsoleteHibernateNamespace WARN: HHH00223:Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 06/07/2011 20:39:43 org.hibernate.internal.CoreMessageLogger_$logger configuredSessionFactory INFO: HHH00041:Configured SessionFactory: null 06/07/2011 20:39:43 org.hibernate.internal.CoreMessageLogger_$logger usingHibernateBuiltInConnectionPool INFO: HHH00402:Using Hibernate built-in connection pool (not for production use!) 06/07/2011 20:39:43 org.hibernate.internal.CoreMessageLogger_$logger hibernateConnectionPoolSize INFO: HHH00115:Hibernate connection pool size: 20 06/07/2011 20:39:43 org.hibernate.internal.CoreMessageLogger_$logger autoCommitMode INFO: HHH00006:Autocommit mode: false 06/07/2011 20:39:43 org.hibernate.internal.CoreMessageLogger_$logger usingDriver INFO: HHH00401:using driver [org.postgresql.Driver] at URL [jdbc:postgresql://localhost:5432/postgres] 06/07/2011 20:39:43 org.hibernate.internal.CoreMessageLogger_$logger connectionProperties INFO: HHH00046:Connection properties: {user=postgres, password=****} 06/07/2011 20:39:44 org.hibernate.internal.CoreMessageLogger_$logger usingDialect INFO: HHH00400:Using dialect: org.hibernate.dialect.PostgreSQLDialect 06/07/2011 20:39:44 org.hibernate.internal.CoreMessageLogger_$logger disablingContextualLOBCreationSinceOldJdbcVersion INFO: HHH00423:Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4 06/07/2011 20:39:44 org.hibernate.internal.CoreMessageLogger_$logger usingDefaultTransactionStrategy INFO: HHH00399:Using default transaction strategy (direct JDBC transactions) 06/07/2011 20:39:44 org.hibernate.internal.CoreMessageLogger_$logger usingAstQueryTranslatorFactory INFO: HHH00397:Using ASTQueryTranslatorFactory 06/07/2011 20:39:45 org.hibernate.internal.CoreMessageLogger_$logger warn WARN: SQL Error: 0, SQLState: 42P01 06/07/2011 20:39:45 org.hibernate.internal.CoreMessageLogger_$logger error ERROR: ERRO: relação "cod_cliente_seq" não existe Exception in thread "main" org.hibernate.exception.SQLGrammarException: ERRO: relação "cod_cliente_seq" não existe at org.hibernate.exception.internal.SQLStateConverter.convert(SQLStateConverter.java:100) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:124) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:109) at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:131) at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:80) at $Proxy11.executeQuery(Unknown Source) at org.hibernate.id.SequenceGenerator.generateHolder(SequenceGenerator.java:110) at org.hibernate.id.SequenceHiLoGenerator.generate(SequenceHiLoGenerator.java:76) at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:202) at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:55) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:187) at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:49) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:89) at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:736) at org.hibernate.internal.SessionImpl.save(SessionImpl.java:729) at org.hibernate.internal.SessionImpl.save(SessionImpl.java:725) at dao.Teste.main(Teste.java:17) Caused by: org.postgresql.util.PSQLException: ERRO: relação "cod_cliente_seq" não existe at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1592) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1327) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:192) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:124) ... 14 more Java Result: 1 CONSTRUÍDO COM SUCESSO (tempo total: 3 segundos)

Classe Cliente:

package modelo;

import java.io.Serializable;
import javax.persistence.*;
import org.hibernate.annotations.GenericGenerator;

/*
 * @author André Mazoni Wanderley
 */

@Entity
public class Cliente implements Serializable {
    
    private String nome, end, bairro, cidade, estado, CEP, tel, fax, email, contato;
    private int id_cliente;
    
    @Id
    @SequenceGenerator( name = "cod_cliente", sequenceName = "cod_cliente_seq", allocationSize = 1)
    @GeneratedValue( strategy = GenerationType.SEQUENCE, generator = "cod_cliente")
    @Column(name = "CLIENTE_ID")
    public int getId_cliente() {
        return id_cliente;
    }

    public void setId_cliente(int id_cliente) {
        this.id_cliente = id_cliente;
    }
    
    @Column(name = "CEP")
    public String getCEP() {
        return CEP;
    }

    public void setCEP(String CEP) {
        this.CEP = CEP;
    }

    @Column(name = "BAIRRO")
    public String getBairro() {
        return bairro;
    }

    public void setBairro(String bairro) {
        this.bairro = bairro;
    }

    @Column(name = "CIDADE")
    public String getCidade() {
        return cidade;
    }

    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    @Column(name = "EMAIL")
    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Column(name = "ENDERECO")
    public String getEnd() {
        return end;
    }

    public void setEnd(String end) {
        this.end = end;
    }

    @Column(name = "ESTADO")
    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    @Column(name = "FAX")
    public String getFax() {
        return fax;
    }

    public void setFax(String fax) {
        this.fax = fax;
    }

    @Column(name = "NOME")
    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    @Column(name = "TELEFONE")
    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    @Column(name = "CONTATO")
    public String getContato() {
        return contato;
    }

    public void setContato(String contato) {
        this.contato = contato;
    }
    
    
    
}

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.url">jdbc:postgresql://localhost:5432/postgres</property> <property name="connection.driver_class">org.postgresql.Driver</property> <property name="connection.username">postgres</property> <property name="connection.password">post</property> <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property> <mapping class="modelo.Cliente"/> <mapping class="modelo.Codigo"/> <mapping class="modelo.Conta"/> <mapping class="modelo.Contrato"/> <mapping class="modelo.Empenho"/> <mapping class="modelo.Equipamento"/> <mapping class="modelo.Favorecido"/> <mapping class="modelo.MaoObra"/> <mapping class="modelo.Material"/> <mapping class="modelo.MovimentoFinanceiro"/> <mapping class="modelo.Obra"/> <mapping class="modelo.Usuario"/> </session-factory> </hibernate-configuration>

Então este erro se refere à esta sequence

sequenceName = "cod_cliente_seq"

Talvez não exista no Postgres

[quote=drsmachado]Então este erro se refere à esta sequence

sequenceName = "cod_cliente_seq"

Talvez não exista no Postgres[/quote]
Então quando eu ponho o GeneratedValue desta forma já tenho que ter criado isso no banco? Ele não gera automaticamente?
Antes eu tinha colocado “AUTO” no lugar de SEQUENCE, mas dava erro e dizia que “hibernate_sequence” não existia.

Então, não sou muito bom em postgres, mas todas as vezes que usei eu criei na mão as sequences (também, uma única linha no pgadmin é tranquilo).

OK. Criando a sequência e as tabelas na mão funcionou. Obrigado.
Agora vou ver se consigo fazer com que as tabelas sejam geradas automaticamente.

OK. Tudo resolvido, obrigado!!
Geração de tabelas está automática e funcionando!

Beleza camarada, então edita o tópico original e coloca [resolvido] no título