Erro ao inicializar o Hibernate

2 respostas
M

Olá, pessoal.

Eu estou tentando criar um sítio eletrônico, usando Hibernate. Porém, ao testar o código e preenchê-lo com os dados obrigatórios (um JSP que chama um servlet), o sistema está falhando ao tentar inicializar o Hibernate, ele nem chega a conectar ao banco do aplicativo (PostgreSQL). Aqui está a transcrição da mensagem de erro recebida:

[i]type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet execution threw an exception
root cause

java.lang.ExceptionInInitializerError

br.com.ong.Util.HibernateUtil.(HibernateUtil.java:23)

br.com.ong.Servlet.CadastroServlet.processRequest(CadastroServlet.java:31)

br.com.ong.Servlet.CadastroServlet.doPost(CadastroServlet.java:151)

javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)[/i]

Alguém aqui já recebeu o mesmo erro ao tentar conectar-se ao Hibernate?

Agradeço se puderem me ajudar a entender esse problema. =o)

2 Respostas

Hebert_Coelho

Oq é que tem aí? br.com.ong.Util.HibernateUtil.(HibernateUtil.java:23)

M

Olá, Jakefrog.

Aqui está o código do "HibernateUtil.java":

package br.com.ong.Util;

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

public class HibernateUtil {

    private static final SessionFactory sessionFactory;
    
    static {
        try {
            // Create the SessionFactory from standard (hibernate.cfg.xml) 
            // config file.
            sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            // Log the exception. 
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }
    
    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
    
    public static void fechar(){  
        getSessionFactory().close();  
    }
}

E aqui está o código do "Conexao.java", onde incluo a chamada para o "HibernateUtil.java":

package br.com.ong.conexao;

import br.com.ong.Util.HibernateUtil;
import org.hibernate.Session;

public class Conexao {
    
    private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
        
        //a classe abaixo tem por finalidade retornar uma sessão de comunicação com o banco
    public static Session getInstance(){
        Session session = (Session) threadLocal.get();
        session = HibernateUtil.getSessionFactory().openSession();
        threadLocal.set(session);
        return session;
    }
}

Será que o código desses dois está errado?

Criado 3 de junho de 2012
Ultima resposta 4 de jun. de 2012
Respostas 2
Participantes 2