Erro Iniciante HIBERNATE

6 respostas
G

E ae pessoal blz? To precisando aprende hibernate meio que na marra…heahea
Peguei um monte de tuttorial e nada de funcionar…Agora segui esse tutorial INTRODUCAO AO HIBERNATE 3 e tava indo td normal…na hora de compila ta dando isso

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment). log4j:WARN Please initialize the log4j system properly. 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:1329) at org.hibernate.cfg.Configuration.configure(Configuration.java:1351) at org.hibernate.cfg.Configuration.configure(Configuration.java:1338) at hiber.HibernateUtility.<clinit>(HibernateUtility.java:29) at hiber.Teste.main(Teste.java:11) Exception in thread "main" java.lang.NullPointerException at hiber.HibernateUtility.getSession(HibernateUtility.java:40) at hiber.Teste.main(Teste.java:11) Java Result: 1

o arquivo hibernate.cfg.xml esta na mesma pasta onde estão os .java e ja tentei colocar em todas as outras pastas tb e sempre da esse erro…

Ta assim as pastasta do netbeans >hiber>src>hiber

nessa ultima hiber esta os arquivos .java e os .hbm.xml das classes… E no SRC o hibernate.cfg.xml e ta dando o mesmo erro

Alguem me ajuda ?..hehhea
Ta dficil o negócio aqui…hehe
valeu!!!

6 Respostas

M

Verifica se na pasta onde está os seus arquivos .class o seu arquivo hibernate.cfg.xml também está lá.

:okok:

G

Opa valeu pela resposta cara…
Mas verifiquei e esta la sim…E continua dando isso

M

sempre coloque hibernate.cfg.xml e os demais mapeamentos dentro de uma pasta classes, dentro do WEB-INF…assim nunca vai dar erro.

G

p/ ter uma noção…ja coloquei em todas as pastas dentro de workspace e mesmo assim da o mesmo erro =

V

Fala Glauton, você esta tendo problemas com log4j e não com hibernate.cfg.xml.

Sou um pouco leigo ainda nesse Framework, mas já me deparei com o seu possivel erro, basta criar um arquivo log4j.properties na raiz com o seguinte codigo:

log4j.rootLogger=DEBUG, dest1

log4j.appender.dest1=org.apache.log4j.ConsoleAppender
log4j.appender.dest1.layout=org.apache.log4j.PatternLayout
log4j.appender.dest1.layout.ConversionPattern=%d %-5p %-5c{3} %x -> %m%n

#log4j.appender.dest2=org.apache.log4j.RollingFileAppender
#log4j.appender.dest2.File=bridge.log

#log4j.appender.dest2.MaxFileSize=100KB

Keep one backup file

#log4j.appender.dest2.MaxBackupIndex=3

#log4j.appender.dest2.layout=org.apache.log4j.PatternLayout
#log4j.appender.dest2.layout.ConversionPattern=%d [%t] %-5p %-5c{3}(%L) %x -> %m%n

Falou, espero que tenha ajudado.

P

Além do problema do LOG4J, o Hibernate.cfg.xml nao esta sendo encontrado....a minha dica é criar uma classe HibernateUtil que tem a SessionFactory, segue o exemplo:

/**
 * Classe que inicializa o framework Hibernate.
 */
public class HibernateUtil {
	
    private static final SessionFactory sessionFactory;
	private static String ARQUIVO_CONFIGURACAO_HIBERNATE = "/br/com/teste/hibernate/config/hibernate.cfg.xml";
	
    static {
        try {
            sessionFactory = new Configuration().configure(ARQUIVO_CONFIGURACAO_HIBERNATE).buildSessionFactory();
        } catch (Throwable ex) {
			ex.printStackTrace();
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static final ThreadLocal threadLocal = new ThreadLocal();

	/**
	 * Método que disponibiliza uma sessao do Hibernate para manipulação de objetos
	 * na camada de persistência.
	 * @return Session Uma sessão do Hibernate.
	 * @throws HibernateException Exceção lançada pelo Hibernate caso haja problemas
	 * ao chamar o método openSession() do próprio Hibernate.
	 */
    public static Session getSessaoAtual() throws HibernateException {
        Session sessao = (Session) threadLocal.get();
        if (sessao == null) {
			sessao = sessionFactory.openSession();
			threadLocal.set(sessao);
        }
        return sessao;
    }

	/**
	 * Método que fecha uma sessao do Hibernate após manipulação de objetos
	 * na camada de persistência.
	 * @throws HibernateException Exceção lançada pelo Hibernate caso haja problemas
	 * ao chamar o método close() do próprio Hibernate.
	 */
    public static void fecharSessao() throws HibernateException {
        Session sessao = (Session) threadLocal.get();
		threadLocal.set(null);
        if (sessao != null)
			sessao.close();
    }
}
Criado 18 de outubro de 2006
Ultima resposta 14 de nov. de 2006
Respostas 6
Participantes 5