2009-03-20 10:58:05,213 INFO cfg.annotations.Version -> Hibernate Annotations <a href="http://3.4.0.GA">3.4.0.GA</a>
2009-03-20 10:58:06,243 INFO hibernate.cfg.Environment -> Hibernate <a href="http://3.3.1.GA">3.3.1.GA</a>
Inicialização do Session Factory falhou.java.lang.ExceptionInInitializerError
Exception in thread “main” java.lang.ExceptionInInitializerError
at HibernateUtil.(HibernateUtil.java:12)
at UsuarioDAO.salvar(UsuarioDAO.java:12)
at principal.main(principal.java:22)
Caused by: java.lang.ExceptionInInitializerError
at org.hibernate.cfg.Configuration.reset(Configuration.java:201)
at org.hibernate.cfg.AnnotationConfiguration.reset(AnnotationConfiguration.java:233)
at org.hibernate.cfg.Configuration.(Configuration.java:220)
at org.hibernate.cfg.Configuration.(Configuration.java:224)
at org.hibernate.cfg.AnnotationConfiguration.(AnnotationConfiguration.java:108)
at HibernateUtil.(HibernateUtil.java:9)
… 2 more
Caused by: java.lang.NullPointerException
at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:167)
at org.hibernate.cfg.Environment.(Environment.java:558)
… 8 more
Hibernate
7 Respostas
Bom, já aconteceu isso comigo, eu reiniciei o conteiner(no meu caso o TomCat) e funcionou.
Samuel, eu estou usando o seridor de aplicaçao JBOSS
Coloca o seu codigo pra gente ver… e ter uma ideia melhor do que pode ser! e o xml tambem
<!-- properties -->
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="hibernate.connection.url">
jdbc:mysql://localhost:3306/delivery
</property>
<property name="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="connection.pool_size">10</property>
<property name="hibernate.c3p0.max_size">10</property>
<property name="hibernate.c3p0.min_size">2</property>
<property name="hibernate.c3p0.timeout">5000</property>
<property name="hibernate.c3p0.max_statements">10</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.c3p0.acquire_increment">2</property>
<!-- mapping files -->
<mapping class="Usuario"/>
</session-factory>
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static{
try{
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
}catch(Throwable ex){
System.out.println(“Inicialização do Session Factory falhou.”+ ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
}
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import <a href="http://javax.persistence.Id">javax.persistence.Id</a>;
import javax.persistence.Table;
@Entity
@Table(name=“usuario”)
public class Usuario implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
private int id_usuario;
private String nome;
private String login;
private String senha;
private String sexo;
private boolean ativo;
private int faixa_idade;
public Usuario(){
}
public void setAtivo(boolean ativo) {
this.ativo = ativo;
}
public void setFaixaIdade(int faixa_idade) {
this.faixa_idade = faixa_idade;
}
public void setIdUsuario(int id_usuario) {
this.id_usuario = id_usuario;
}
public void setLogin(String login) {
this.login = login;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setSenha(String senha) {
this.senha = senha;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public boolean isAtivo() {
return ativo;
}
public int getFaixaIdade() {
return faixa_idade;
}
public int getIdUsuario() {
return id_usuario;
}
public String getLogin() {
return login;
}
public String getNome() {
return nome;
}
public String getSenha() {
return senha;
}
public String getSexo() {
return sexo;
}
}
import org.hibernate.Session;
public class UsuarioDAO {
private Session session;
public UsuarioDAO() {
}
public void salvar(Usuario Usu){
session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
session.save(Usu);
session.getTransaction().commit();
}
}
import org.hibernate.Session;
import org.hibernate.Transaction;
public class principal {
public static Session session;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Usuario Us = new Usuario();
Us.setNome("Gustavo");
Us.setLogin("Gustavo");
Us.setSenha("Samuel");
Us.setSexo("M");
Us.setAtivo(true);
Us.setFaixaIdade(1);
UsuarioDAO usuarioDAO = new UsuarioDAO();
usuarioDAO.salvar(Us);
}
}
Nunca tive aquelas carinhas com óculos escuros no meu JBoss =(
Mas falando sério, tente limpar todos os temporários e reiniciar o JBoss.
Se ainda assim continuar, sei que não é o certo, mas tente baixar de novo o JBoss e substituir o antigo pelos arquivos fresquinhos (mesma versão, tudo igual, mas novo) e veja no que que da.
A propósito, ja tive bugs que sumiram depois de reiniciar o servidor, a máquina, nao o Application Server.
Abraços.
Quase esqueci:
Use as tags Code pra postar… códigos.
Geralmente uma descrição do que estava fazendo no topo da mensagem costuma ajudar a te ajudar. Try it next time.
edit: correção ortográfica (não a do Lula).
[quote=gustavotudeia]
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/delivery
org.hibernate.dialect.MySQLDialect
Tenta fazer assim :
<?xml version="1.0"?>
<!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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/delivery</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
//... demais properties
<mapping class="seu.pacote.SuaClasse"/> // ao inves de colocar so usuario, coloca o caminho todo
</session-factory>
</hibernate-configuration>
Ah e esse arquivo você coloca no classpath do projeto.
Aqui eu testei com o maven então eu colocava no src/main/resources!
O problema pelo que vi e que ele num tah conseguindo ler o arquivo xml, provavelmente pode tah no lugar errado
Abraços