Hibernate + Initial SessionFactory creation failed.java.lang.ExceptionInInitializerError

0 respostas
M

Boa tarde pessoal!

Sou iniciante em Java + Hibernate e estou tentando efetuar uma conexão do Hibernate com o Mysql utilizando como ferramenta o Eclipse.
Busquei muita informação antes de criar este post, mas com nenhum consegui sanar o problema. Antes de mais nada agradeço a ajuda de todos!

Construi o arquivo hibernate.cfg.xml e o salvei na pasta “src”, a classe Cliente com annotations no package “teste” e a classe Principal e a HibernateUtil, também no package “teste”, para efetuar um teste.
O erro lançado no console do Eclipse é:

Try HibernateUtil
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Initial SessionFactory creation failed.java.lang.ExceptionInInitializerError
Exception in thread "main" java.lang.ExceptionInInitializerError
	at teste.HibernateUtil.<clinit>(HibernateUtil.java:15)
	at teste.dao.ClienteDAO.salvar(ClienteDAO.java:13)
	at teste.Principal.main(Principal.java:16)
Caused by: java.lang.ExceptionInInitializerError
	at org.hibernate.cfg.Configuration.reset(Configuration.java:174)
	at org.hibernate.cfg.AnnotationConfiguration.reset(AnnotationConfiguration.java:223)
	at org.hibernate.cfg.Configuration.<init>(Configuration.java:193)
	at org.hibernate.cfg.Configuration.<init>(Configuration.java:197)
	at org.hibernate.cfg.AnnotationConfiguration.<init>(AnnotationConfiguration.java:98)
	at teste.HibernateUtil.<clinit>(HibernateUtil.java:11)
	... 2 more
Caused by: java.lang.NullPointerException
	at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:144)
	at org.hibernate.cfg.Environment.<clinit>(Environment.java:529)
	... 8 more

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 name="">
  <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>
  <property name="connection.url">jdbc:mysql://localhost/teste</property>
  <property name="connection.username">root</property>
  <property name="connection.password"></property>
  <property name="connection.pool_size">1</property>
  <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
  <property name="current_session_context_class">thread</property>
  <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
  <property name="show_sql">true</property>

  <mapping class="teste.Cliente"/>

 </session-factory>
</hibernate-configuration>

Cliente.java

package teste; 
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.Table;

@Entity
	@Table(name="cliente")
	public class Cliente implements Serializable { 
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Long id;
	
	@Column(name="nome_cliente", nullable = false, length=60)
	private String nome; 
	
	@Column(name = "idade", nullable = false, length = 5) 
	private Long idade; 
 
	public Cliente(){ 
	 
	}  
	public Long getId() { 
		return id; 
	} 
	private void setId(Long id) { 
		this.id = id; 
	} 
	public Long getIdade() { 
		return idade; 
	}  
	public void setIdade(Long idade) { 
		this.idade = idade; 
	}  
	public String getNome() { 
		return nome; 
	} 
	public void setNome(String nome) { 
		this.nome = nome; 
	}  
}

Principal.java

package teste;
import teste.dao.ClienteDAO;

public class Principal {

	public static void main(String[] args) {
		Cliente c1 = new Cliente();
		c1.setNome("Cliente 1");
		c1.setIdade(new Long(12));
		
		Cliente c2 = new Cliente();
		c2.setNome("cliente 2");
		c2.setIdade(new Long(13));
		
		ClienteDAO clienteDAO = new ClienteDAO();
		clienteDAO.salvar(c1);
		clienteDAO.salvar(c2);
	}
}

HibernateUtil.java

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

public class HibernateUtil {  
		static final SessionFactory sessionFactory;  
	static {  
		try { 
			System.out.println("Try HibernateUtil");
			AnnotationConfiguration configuration = new AnnotationConfiguration().configure("hibernate.cfg.xml");  
			sessionFactory = configuration.buildSessionFactory();  
		} catch (Throwable ex) {  
			System.err.println("Initial SessionFactory creation failed." + ex);  
			throw new ExceptionInInitializerError(ex);  
		}
	}  

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

Obrigado pelo tempo de vocês!

Criado 25 de maio de 2009
Respostas 0
Participantes 1