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)
Oq é que tem aí? br.com.ong.Util.HibernateUtil.(HibernateUtil.java:23)
Olá, Jakefrog.
Aqui está o código do “HibernateUtil.java”:
package br.com.ong.Util;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
[code]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();
}
}[/code]
E aqui está o código do “Conexao.java”, onde incluo a chamada para o “HibernateUtil.java”:
[code]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;
}
}[/code]
Será que o código desses dois está errado?