Caused by: java.lang.AbstractMethodError: org.postgresql.jdbc2.Jdbc2DatabaseMetaData.getJDBCMaj

Bom dia, pessoal estou com um problema e não consigo resolver.
Bom eu criei um projetinho jsf com hibernate e mysql, funcionou perfeitamente, então resolvi migrar esse projeto, usando o postgreSQL,
Porem estou recebendo uma mensagem de erro.
Aqui é meu hibernate.cfg.xml

[code]<?xml version='1.0' encoding='utf-8'?>

org.postgresql.Driver jdbc:postgresql://localhost:5433/login postgres 160406 org.hibernate.dialect.PostgreSQLDialect thread update
   <mapping class="com.br.joaoleno.usuario.Usuario"></mapping>  
[/code]

Alguem poderia me ajudar a solucionar esse problema?
estou tendo o seguinte erro.

09/07/2012 16:29:27 org.apache.catalina.core.StandardContext filterStart SEVERE: Exception starting filter HibernateFilter java.lang.ExceptionInInitializerError at com.br.joaoleno.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:30) at com.br.joaoleno.util.HibernateUtil.<clinit>(HibernateUtil.java:17) at com.br.joaoleno.web.filter.HibernateSessionRequestFilter.init(HibernateSessionRequestFilter.java:22) at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4584) at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5262) at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5257) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.AbstractMethodError: org.postgresql.jdbc2.Jdbc2DatabaseMetaData.getJDBCMajorVersion()I at org.hibernate.engine.jdbc.JdbcSupportLoader.useContextualLobCreation(JdbcSupportLoader.java:78) at org.hibernate.engine.jdbc.JdbcSupportLoader.loadJdbcSupport(JdbcSupportLoader.java:52) at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:121) at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2163) at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2159) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1383) at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954) at com.br.joaoleno.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:25) ... 14 more

informações do apache

[code]09/07/2012 16:29:27 org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter HibernateFilter
java.lang.ExceptionInInitializerError
at com.br.joaoleno.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:30)
at com.br.joaoleno.util.HibernateUtil.(HibernateUtil.java:17)
at com.br.joaoleno.web.filter.HibernateSessionRequestFilter.init(HibernateSessionRequestFilter.java:22)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:98)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4584)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5262)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5257)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.AbstractMethodError: org.postgresql.jdbc2.Jdbc2DatabaseMetaData.getJDBCMajorVersion()I
at org.hibernate.engine.jdbc.JdbcSupportLoader.useContextualLobCreation(JdbcSupportLoader.java:78)
at org.hibernate.engine.jdbc.JdbcSupportLoader.loadJdbcSupport(JdbcSupportLoader.java:52)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:121)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2163)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2159)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1383)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954)
at com.br.joaoleno.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:25)
… 14 more

informações do apache

view plaincopy to clipboardprint?

66111 [Finalizer] INFO org.hibernate.connection.DriverManagerConnectionProvider - cleaning up connection pool: jdbc:postgresql://localhost:5433/login  
09/07/2012 16:29:24 org.apache.catalina.util.LifecycleBase stop  
INFO: The stop() method was called on component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Cad]] after stop() had already been called. The second call will be ignored.  
09/07/2012 16:29:24 org.apache.catalina.startup.HostConfig checkResources  
INFO: Undeploying context [/Cad]  
09/07/2012 16:29:25 org.apache.catalina.startup.HostConfig deployDescriptor  
INFO: Deploying configuration descriptor Cad.xml from C:\Users\Joao Leno\.netbeans\7.1.2\apache-tomcat-7.0.22.0_base\conf\Catalina\localhost  
09/07/2012 16:29:26 com.sun.faces.config.ConfigureListener contextInitialized  
INFO: Inicializando Mojarra 2.1.1 (FCS 20110408) para o contexto '/Cad'  
09/07/2012 16:29:26 com.sun.faces.spi.InjectionProviderFactory createInstance  
INFO: JSF1048: Anotações PostConstruct/PreDestroy presentes.  Os métodos ManagedBeans marcados com essas anotações informarão as anotações processadas.  
2 [Thread-19] INFO org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.5.2-Final  
12 [Thread-19] INFO org.hibernate.cfg.Environment - Hibernate 3.5.2-Final  
13 [Thread-19] INFO org.hibernate.cfg.Environment - hibernate.properties not found  
15 [Thread-19] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist  
17 [Thread-19] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling  
89 [Thread-19] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final  
95 [Thread-19] INFO org.hibernate.cfg.Configuration - configuring from resource: hibernate.cfg.xml  
95 [Thread-19] INFO org.hibernate.cfg.Configuration - Configuration resource: hibernate.cfg.xml  
172 [Thread-19] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null  
176 [Thread-19] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.  
208 [Thread-19] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: com.br.joaoleno.usuario.Usuario  
241 [Thread-19] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity com.br.joaoleno.usuario.Usuario on table usuario  
278 [Thread-19] INFO org.hibernate.cfg.AnnotationConfiguration - Hibernate Validator not found: ignoring  
317 [Thread-19] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)  
317 [Thread-19] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20  
317 [Thread-19] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false  
317 [Thread-19] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: org.postgresql.Driver at URL: jdbc:postgresql://localhost:5433/login  
344 [Thread-19] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=postgres, password=****}  
367 [Thread-19] INFO org.hibernate.cfg.SettingsFactory - RDBMS: PostgreSQL, version: 9.1.4  
367 [Thread-19] INFO org.hibernate.cfg.SettingsFactory - JDBC driver: PostgreSQL Native Driver, version: PostgreSQL 8.2 JDBC2 with NO SSL (build 505)  
391 [Thread-19] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.PostgreSQLDialect  
Criação e inicial do objeto SessionFacotry. Erro.: org.postgresql.jdbc2.Jdbc2DatabaseMetaData.getJDBCMajorVersion()I  
09/07/2012 16:29:27 org.apache.catalina.core.StandardContext startInternal  
SEVERE: Error filterStart  
09/07/2012 16:29:27 org.apache.catalina.core.StandardContext startInternal  
SEVERE: Context [/Cad] startup failed due to previous errors  [/code]

esse url de conexão postgre ta certa?

Você nao precisa fica abrindo vários topicos para resolver seu problema, tenha calma

DaniloAndrade , acredito que esteja certa, por que eu tinha um projeto desktop que utilizava o hibvernate e o banco era o postgresql, e a url era essa.

vc pode colocar sua classe HibernateUtil pra gente ver

DaniloAndrade, Olhe aí a classe

[code]/*
Class responsavel por fazer a ponte entre o arquivo de configuração e a conexão com o banco.
*/
package com.br.joaoleno.util;

/**
*

  • @author Joao Leno
    */
    import org.hibernate.HibernateException;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.AnnotationConfiguration;
    import org.hibernate.cfg.Configuration;

public class HibernateUtil {

 private static final SessionFactory sessionFactory = buildSessionFactory();//Cria uma instancia de SessionFactory 

private static SessionFactory buildSessionFactory()//Metodo responsavel por configurar o ambiente e retorna uma SessionFactory
{
   try
   {
       AnnotationConfiguration cfg = new AnnotationConfiguration();
       cfg.configure("hibernate.cfg.xml");//Cria uma SessionFactory com base no arquivo xml 
       return cfg.buildSessionFactory();//Configura o hibernate e retorna uma SessionFactory
   }
   catch(Throwable erro)
   {
      System.out.println("Criação e inicial do objeto SessionFacotry. Erro.: "+erro.getMessage());
      throw new ExceptionInInitializerError(erro); //Acionado para indicar que ocorreu uma exceção durante a avaliação de um inicializado estatico ou inicializador para uma váriavel estática.
   }
}
 public static SessionFactory getSessionFactory()//Metodo responsavel por retornar uma SessionFactory
 {
       
      return sessionFactory;
 }

}
[/code]

o erro tá dando nessa classe, ele tá caindo no catch, mas é muito estranho no mysql, funciona

Ooow e agora quem poderá me defender ?

troca

AnnotationConfiguration cfg = new AnnotationConfiguration();  
cfg.configure("hibernate.cfg.xml");//Cria uma SessionFactory com base no arquivo xml

por

Configuration cfg = new Configuration();
cfg .configure();

ve se resolve

Da erro, por que estou usando notações

Caused by: org.hibernate.MappingException: An AnnotationConfiguration instance is required to use

coloca sua classe Usuario

minha classe Usuario, já estava colocada. Porem ainda recebo aquela mensagem de erro.

não coloca o codigo da sua classe Usuario pra gente poder ver

Beleza taew o código da minha classe Usuario

package com.br.joaoleno.usuario;



/*
 * @author Joao Leno
 */
import java.io.*;
import javax.persistence.*;
import java.util.*;

@Entity//Entidade
@Table(name = "usuario")

public class Usuario {
    @Id
    @GeneratedValue
    
    private Integer idUsuario;
   // @Column (name="nomeUsuario")nome  e na minha classe fosse outro
    private String nome;
    @org.hibernate.annotations.NaturalId //Siginifica que o campo email, é único, ou seja, não pode haver email repetido.
    private String email;
    private String senha;
    private String idioma;
    private Boolean estatus;
    
  
    
 public String getEmail() {
        return email;
    }

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

    public Integer getIdUsuario() {
        return idUsuario;
    }

    public void setIdUsuario(Integer idUsuario) {
        this.idUsuario = idUsuario;
    }

    public String getIdioma() {
        return idioma;
    }

    public void setIdioma(String idioma) {
        this.idioma = idioma;
    }

    public String getNome() {
        return nome;
    }

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

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public Boolean getEstatus() {
        return estatus;
    }

    public void setEstatus(Boolean status) {
        this.estatus = status;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Usuario other = (Usuario) obj;
        if (this.idUsuario != other.idUsuario && (this.idUsuario == null || !this.idUsuario.equals(other.idUsuario))) {
            return false;
        }
        if ((this.nome == null) ? (other.nome != null) : !this.nome.equals(other.nome)) {
            return false;
        }
        if ((this.email == null) ? (other.email != null) : !this.email.equals(other.email)) {
            return false;
        }
        if ((this.senha == null) ? (other.senha != null) : !this.senha.equals(other.senha)) {
            return false;
        }
        if ((this.idioma == null) ? (other.idioma != null) : !this.idioma.equals(other.idioma)) {
            return false;
        }
        if (this.estatus != other.estatus && (this.estatus == null || !this.estatus.equals(other.estatus))) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = 13 * hash + (this.idUsuario != null ? this.idUsuario.hashCode() : 0);
        hash = 13 * hash + (this.nome != null ? this.nome.hashCode() : 0);
        hash = 13 * hash + (this.email != null ? this.email.hashCode() : 0);
        hash = 13 * hash + (this.senha != null ? this.senha.hashCode() : 0);
        hash = 13 * hash + (this.idioma != null ? this.idioma.hashCode() : 0);
        hash = 13 * hash + (this.estatus != null ? this.estatus.hashCode() : 0);
        return hash;
    }
    
    
  
}

provavelmente não tem a ver com o código feito, até por que se fosse esse o caso não funcionaria com o my sql, inclusive o erro que está ocorrendo diz que a classe não está mapeada, por causa do descrito abaixo.

[quote=DaniloAndrade]
troca

AnnotationConfiguration cfg = new AnnotationConfiguration();  
cfg.configure("hibernate.cfg.xml");//Cria uma SessionFactory com base no arquivo xml

por

Configuration cfg = new Configuration();
cfg .configure();

ve se resolve[/quote]

fazendo deste jeito o hibernate não vai encontrar o arquivo xml de configuração dele, acredito que nesse caso ele irá procurar um hibernate.properties, que nesse caso não existe, por isso o erro dizendo :

[quote]
Caused by: org.hibernate.MappingException: An AnnotationConfiguration instance is required to use [/quote]

joaolenosi, eu nunca usei o postgree, mas me parece pela descrição do erro ser alguma coisa no seu driver, procure pegar alguma versão do driver referente a mesma versão do banco de dados e tente com a mais recente, veja se com uma das duas funciona.

comenta essa linha @org.hibernate.annotations.NaturalId e faz um teste pra ver

maior_abandonado, o que você falou tem plena coerência. Acredito que também seja o drive.
Eu tenho o postgreSQL 8.2 e o postgreSQL 9.1 e todos já vem com o drive, já tentei utilizar as diferentes versões com seus respectivos jdbc e mesmo assim não deu certo,
fico recebendo essa mensagem de erro.

Criação e inicial do objeto SessionFacotry. Erro.: org.postgresql.jdbc2.Jdbc2DatabaseMetaData.getJDBCMajorVersion()I  

Danilo fiz o teste assim, tambem da erro.
Acredito que o problema não seja com o código, até por que esse projeto funciona da mesma forma no mysql. A única coisa que alterei foi os drives e o hibernate.cfg.xml

10/07/2012 10:37:53 org.apache.catalina.core.StandardContext filterStart SEVERE: Exception starting filter HibernateFilter java.lang.ExceptionInInitializerError at com.br.joaoleno.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:30) at com.br.joaoleno.util.HibernateUtil.<clinit>(HibernateUtil.java:17) at com.br.joaoleno.web.filter.HibernateSessionRequestFilter.init(HibernateSessionRequestFilter.java:22) at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4584) at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5262) at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5257) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619) Caused by: org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="com.br.joaoleno.usuario.Usuario"/> at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1692) at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1647) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1626) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1600) at org.hibernate.cfg.Configuration.configure(Configuration.java:1520) at org.hibernate.cfg.Configuration.configure(Configuration.java:1506) at com.br.joaoleno.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:24) ... 14 more

volta esse codigo novamente

AnnotationConfiguration cfg = new AnnotationConfiguration();    
cfg.configure("hibernate.cfg.xml");