Problema com o Hibernate

8 respostas
H

To com um problema no momento uso o metodo save() no meu DAO.

da esse erro:

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).

log4j:WARN Please initialize the log4j system properly.

Criacao inicial do SessionFactory falhou: org.hibernate.HibernateException: /hibernate.cfg.xml not found

Exception in thread AWT-EventQueue-0 java.lang.ExceptionInInitializerError

at br.com.caaspunimed.config.HibernateUtil.(HibernateUtil.java:26)

at br.com.caaspunimed.dao.AdvogadoDAO.salvar(AdvogadoDAO.java:25)

at br.com.caaspunimed.formularios.JFrameAdvogados.jbtSalvarActionPerformed(JFrameAdvogados.java:388)

at br.com.caaspunimed.formularios.JFrameAdvogados.access$200(JFrameAdvogados.java:21)

at br.com.caaspunimed.formularios.JFrameAdvogados$3.actionPerformed(JFrameAdvogados.java:110)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

at java.awt.Component.processMouseEvent(Component.java:6038)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)

at java.awt.Component.processEvent(Component.java:5803)

at java.awt.Container.processEvent(Container.java:2058)

at java.awt.Component.dispatchEventImpl(Component.java:4410)

at java.awt.Container.dispatchEventImpl(Container.java:2116)

at java.awt.Component.dispatchEvent(Component.java:4240)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)

at java.awt.Container.dispatchEventImpl(Container.java:2102)

at java.awt.Window.dispatchEventImpl(Window.java:2429)

at java.awt.Component.dispatchEvent(Component.java:4240)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

Caused by: org.hibernate.HibernateException: /hibernate.cfg.xml not found

at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:147)

at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1411)

at org.hibernate.cfg.Configuration.configure(Configuration.java:1433)

at org.hibernate.cfg.Configuration.configure(Configuration.java:1420)

at br.com.caaspunimed.config.HibernateUtil.(HibernateUtil.java:23)

 29 more

não sei o que pode ser?

8 Respostas

Alexandre_Saudate

Qual a sua estrutura de diretórios? Onde está o hibernate.cfg.xml?

rodrigo_gomes
org.hibernate.HibernateException: /hibernate.cfg.xml not found
H

tenho um pacote br.com.caaspunimed.config
dentro dele esta o hibernate.cfg.xml e uma classe para recuperar as sessoes
esta ae

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.caaspunimed.config;

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

/**
 *
 * @author Administrador
 * * Classe estatica responsavel por encapsular a criacao
 * e recuperação de sessões do hibernate. 
 */

public class HibernateUtil {
    private static final SessionFactory sessionFactory;
    static{
        try{
            //Cria o SessionFactory para o arquivo hibernate.cfg.xml
            sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
        }catch(Throwable throwable){
            System.err.println("Criacao inicial do SessionFactory falhou: "+throwable);
            throw new ExceptionInInitializerError(throwable);
        }
    }
    
    public static SessionFactory getSessionFactory(){
        return sessionFactory;
    }
}
Alexandre_Saudate

O hibernate.cfg.xml não vai dentro de pacote nenhum…

H

Pessoal ainda não consegui resolver.

Funciona assim. Tenho uma tela de cadastro onde o botao SALVAR cria a Classe Advogado e a popula, depóis cria o dao e chama o metodo salvar(advogado). Seque abaixo as classes:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.caaspunimed.dominio;

import java.util.Collection;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;




/**
 *
 * @author Administrador
 */
@Entity
public class Advogado {
    
    @Id
    @GeneratedValue (strategy = GenerationType.SEQUENCE)
    private int id;
  
    private String nome;
    private int oab;
    private String endereco;
    private String cidade;
    private String telefone;
    private String cep;
    
    @Temporal(TemporalType.DATE)
    private Date dataNascimento;
    private String nomeMae;
    private String cpf;
    private String rg;
    private String sexo;
    private String estadoCivil;
    private String profissao;
    private String incricaoUnimed;

    @OneToMany (mappedBy="advogado", fetch= FetchType.LAZY)
    @Cascade(CascadeType.ALL)
    private Collection dependentes;
    
    //***** metodos get e sets
Classe DAO
package br.com.caaspunimed.dao;

import br.com.caaspunimed.config.HibernateUtil;
import br.com.caaspunimed.dominio.Advogado;
import org.hibernate.Session;

/**
 *
 * @author Administrador
 */
public class AdvogadoDAO {
    
    private Session session;
    
    public void AdvogadoDAO(){
        
    }
    
    public void salvar(Advogado adv){
        session = HibernateUtil.getSession().getCurrentSession();  
        session.beginTransaction();
        session.save(adv);
        session.getTransaction().commit();
        
        session.close();
       
    }

}

coloquei o arquivo hibernate.cfg.xml fora de todos os pacotes da aplicacao

esta é a classe de configuracao do hibernate

package br.com.caaspunimed.config;

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

public class HibernateUtil {
    private static final SessionFactory sessionFactory;
    static{
        try{
            //Cria o SessionFactory para o arquivo hibernate.cfg.xml
            sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
        }catch(Throwable throwable){
            System.err.println("Criacao inicial do SessionFactory falhou: "+throwable);
            throw new ExceptionInInitializerError(throwable);
        }
    }
    
    public static Session getSession(){
        return sessionFactory.openSession();
    }
}
e ainda não esta rodando alguem tem alguma ideia do q estja acontecendo.
Quinger

Tentou jogar o hibernate.cfg.xml para a raiz do src?

na instância da SessionFactory no HibernateUtil eu uso:
sessionFactory = new Configuration().configure().buildSessionFactory();

H

blz, agora mudou o erro e eu nao sei o q fazer,

esse é o meu hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--
    Document   : hibernate.cfg.xml
    Created on : 27 de Fevereiro de 2008, 14:13
    Author     : Administrador
    Description:
        Purpose of the document follows.
-->
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <!-- Configurações do Banco de Dados -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost/dbunimed</property>
        <property name="connection.username">root</property>
        <property name="connection.password">1234</property>
        
        <!-- Configurações do Pool de Conexão JDBC -->
        <property name="connection.pool_size">1</property>
        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.HSQLDialect</property>
        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>
        <!-- Disable the second-level cache -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
    </session-factory>
    
    <!-- Mapeamento das Classes -->
    <mapping class="br.com.caaspunimed.dominio.Advogado"/>
    <mapping class="br.com.caaspunimed.dominio.Dependente"/>
    <mapping class="br.com.caaspunimed.dominio.Ficha"/>
    <mapping class="br.com.caaspunimed.dominio.FichaDependente"/>

</hibernate-configuration>
[list]

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).

log4j:WARN Please initialize the log4j system properly.

Criacao inicial do SessionFactory falhou: org.hibernate.MappingException: invalid configuration

Exception in thread “AWT-EventQueue-0” java.lang.ExceptionInInitializerError

at br.com.caaspunimed.config.HibernateUtil.(HibernateUtil.java:30)

at br.com.caaspunimed.dao.AdvogadoDAO.salvar(AdvogadoDAO.java:25)

at br.com.caaspunimed.formularios.JFrameAdvogados.jbtSalvarActionPerformed(JFrameAdvogados.java:388)

at br.com.caaspunimed.formularios.JFrameAdvogados.access$200(JFrameAdvogados.java:21)

at br.com.caaspunimed.formularios.JFrameAdvogados$3.actionPerformed(JFrameAdvogados.java:110)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

at java.awt.Component.processMouseEvent(Component.java:6038)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)

at java.awt.Component.processEvent(Component.java:5803)

at java.awt.Container.processEvent(Container.java:2058)

at java.awt.Component.dispatchEventImpl(Component.java:4410)

at java.awt.Container.dispatchEventImpl(Container.java:2116)

at java.awt.Component.dispatchEvent(Component.java:4240)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)

at java.awt.Container.dispatchEventImpl(Container.java:2102)

at java.awt.Window.dispatchEventImpl(Window.java:2429)

at java.awt.Component.dispatchEvent(Component.java:4240)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

Caused by: org.hibernate.MappingException: invalid configuration

at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1493)

at org.hibernate.cfg.Configuration.configure(Configuration.java:1434)

at org.hibernate.cfg.Configuration.configure(Configuration.java:1420)

at br.com.caaspunimed.config.HibernateUtil.(HibernateUtil.java:27)

… 29 more

Caused by: org.xml.sax.SAXParseException: The content of element type “hibernate-configuration” must match “(session-factory,security?)”.

at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)

at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)

at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)

at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)

at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(Unknown Source)

at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(Unknown Source)

at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)

at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)

at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)

at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)

at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)

at org.dom4j.io.SAXReader.read(SAXReader.java:465)

at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1490)

… 32 more

[/list]

O que pode ser isso?

Quinger

Vc apenas alterou o diretório do hibernate.cfg.xml?

ou mudou tbm o HibernateUtil?

O mapeamento tem que ficar dentro da SessionFactory:

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>   
  
<!--   
    Document   : hibernate.cfg.xml   
    Created on : 27 de Fevereiro de 2008, 14:13   
    Author     : Administrador   
    Description:   
        Purpose of the document follows.   
-->   
<!DOCTYPE hibernate-configuration PUBLIC   
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"   
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">   
  
<hibernate-configuration>   
    <session-factory>   
        <!-- Configurações do Banco de Dados -->   
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>   
        <property name="connection.url">jdbc:mysql://localhost/dbunimed</property>   
        <property name="connection.username">root</property>   
        <property name="connection.password">1234</property>   
           
        <!-- Configurações do Pool de Conexão JDBC -->   
        <property name="connection.pool_size">1</property>   
        <!-- SQL dialect -->   
        <property name="dialect">org.hibernate.dialect.HSQLDialect</property>   
        <!-- Enable Hibernate's automatic session context management -->   
        <property name="current_session_context_class">thread</property>   
        <!-- Disable the second-level cache -->   
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>   
        <!-- Echo all executed SQL to stdout -->   
        <property name="show_sql">true</property>   
        <!-- Mapeamento das Classes -->   
        <mapping class="br.com.caaspunimed.dominio.Advogado"/>   
        <mapping class="br.com.caaspunimed.dominio.Dependente"/>   
        <mapping class="br.com.caaspunimed.dominio.Ficha"/>   
        <mapping class="br.com.caaspunimed.dominio.FichaDependente"/>   
    </session-factory>   
  
</hibernate-configuration>
Criado 27 de fevereiro de 2008
Ultima resposta 27 de fev. de 2008
Respostas 8
Participantes 4