Problemas com Hibernate

8 respostas
bruno_savi

Pessoal to tentando configurar o hibernate mas não consigo fiz tudo certinho de acordo com um tutorial mas segue o seguinte problema…

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

log4j:WARN Please initialize the log4j system properly.

java.lang.NoClassDefFoundError: org/apache/commons/collections/SequencedHashMap

at org.hibernate.mapping.Table.(Table.java:33)

at org.hibernate.cfg.Mappings.addTable(Mappings.java:165)

at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:290)

at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:273)

at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)

at org.hibernate.cfg.Configuration.add(Configuration.java:669)

at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:504)

at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)

at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587)

at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)

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

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

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

at br.com.sgdi.hibernate.factory.HibernateFactory.(HibernateFactory.java:22)

at br.com.sgdi.hibernate.teste.Teste.main(Teste.java:12)

Exception in thread main java.lang.ExceptionInInitializerError

at br.com.sgdi.hibernate.factory.HibernateFactory.(HibernateFactory.java:25)

at br.com.sgdi.hibernate.teste.Teste.main(Teste.java:12)

Caused by: java.lang.NoClassDefFoundError: org/apache/commons/collections/SequencedHashMap

at org.hibernate.mapping.Table.(Table.java:33)

at org.hibernate.cfg.Mappings.addTable(Mappings.java:165)

at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:290)

at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:273)

at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)

at org.hibernate.cfg.Configuration.add(Configuration.java:669)

at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:504)

at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)

at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587)

at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)

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

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

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

at br.com.sgdi.hibernate.factory.HibernateFactory.(HibernateFactory.java:22)

 1 more

Codigo

Classe que testa

public class Teste {

public static void main(String[] args) {
Session session = HibernateFactory.getInstance();
	Transaction tx = session.beginTransaction();
	GrupoProcedimentoBean g = new GrupoProcedimentoBean();
	//g.setGruProId();
	g.setGruProCodigo("cod");
	g.setGruProNome("Nome");
	g.setGruProObs("obs");
	g.setGruProStatus("status");
	session.save(g);
	tx.commit();
}

}

Hibernate Factory

package br.com.sgdi.hibernate.factory;

import org.hibernate.HibernateException;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;
public class HibernateFactory {

// Armazena mapeamentos e configurações do hibernate

private static final SessionFactory sessionFactory;
//Thread que permite que abra um processo para cada pedido e cada um tem um ID próprio
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();



/*
 * Le configuração do xml e retorna um objeto SessionFactory 
 */
static {
	try {
		sessionFactory = new Configuration().configure("br/com/sgdi/hibernate/factory/hibernate.cfg.xml").buildSessionFactory();
	} catch(Throwable t) {
		t.printStackTrace();
		throw new ExceptionInInitializerError(t);
	}
}

/*
 * Retorno de um único objeto de conexão
 */
public static Session getInstance()throws HibernateException{
	Session session = (Session) threadLocal.get();
	session = sessionFactory.openSession();
	threadLocal.set(session);
	return session;
}

}

8 Respostas

D

E ai jovem. Na paz?

Cara… de acordo com o log do erro está faltando o jar do commons-collections. Você baixa ele lá no site da Apache. =]

Espero ter ajudado. Até.

D

E ai jovem. Na paz?

Cara… de acordo com o log do erro está faltando o jar do commons-collections. Você baixa ele lá no site da Apache. =]

Espero ter ajudado. Até.

bruno_savi

Beleza esse problema foi resolvido agora aparece o seguinte…

org.hibernate.InvalidMappingException: Could not parse mapping document from resource br/com/sgdi/bean/grupoProcedimento/GrupoProcedimento.hbm.xml

at org.hibernate.cfg.Configuration.addResource(Configuration.java:569)

at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587)

at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)

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

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

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

at br.com.sgdi.hibernate.factory.HibernateFactory.(HibernateFactory.java:22)

at br.com.sgdi.hibernate.teste.Teste.main(Teste.java:12)

Caused by: org.hibernate.MappingException: class br/com/sgdi/bean/grupoProcedimento/GrupoProcedimentoBean not found while looking for property: gruProId

at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:74)

at org.hibernate.mapping.SimpleValue.setTypeUsingReflection(SimpleValue.java:276)

at org.hibernate.cfg.HbmBinder.bindSimpleId(HbmBinder.java:401)

at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:334)

at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:273)

at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)

at org.hibernate.cfg.Configuration.add(Configuration.java:669)

at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:504)

at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)

 7 more

Caused by: java.lang.ClassNotFoundException: br/com/sgdi/bean/grupoProcedimento/GrupoProcedimentoBean

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Unknown Source)

at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100)

at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:70)

 15 more

Exception in thread main java.lang.ExceptionInInitializerError

at br.com.sgdi.hibernate.factory.HibernateFactory.(HibernateFactory.java:25)

at br.com.sgdi.hibernate.teste.Teste.main(Teste.java:12)

Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from resource br/com/sgdi/bean/grupoProcedimento/GrupoProcedimento.hbm.xml

at org.hibernate.cfg.Configuration.addResource(Configuration.java:569)

at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587)

at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)

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

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

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

at br.com.sgdi.hibernate.factory.HibernateFactory.(HibernateFactory.java:22)

 1 more

Caused by: org.hibernate.MappingException: class br/com/sgdi/bean/grupoProcedimento/GrupoProcedimentoBean not found while looking for property: gruProId

at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:74)

at org.hibernate.mapping.SimpleValue.setTypeUsingReflection(SimpleValue.java:276)

at org.hibernate.cfg.HbmBinder.bindSimpleId(HbmBinder.java:401)

at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:334)

at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:273)

at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)

at org.hibernate.cfg.Configuration.add(Configuration.java:669)

at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:504)

at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)

 7 more

Caused by: java.lang.ClassNotFoundException: br/com/sgdi/bean/grupoProcedimento/GrupoProcedimentoBean

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Unknown Source)

at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100)

at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:70)

 15 more

Segue abaixo o grupoProcedimento.hbm que acredito eu que seja o problema

<?xml version="1.0" encoding="UTF-8"?>
<!--   Relacionamento com a tabela unidade  recebe unidId-->
	
	<property name="gruProCodigo" />
	<property name="gruProNome" />
	<property name="gruProObs" />
	<property name="origObs" />
	<property name="gruProStatus" />
</class>

Obs os nomes estao = o do bean e do banco…

D


Caused by: java.lang.ClassNotFoundException: br/com/sgdi/bean/grupoProcedimento/GrupoProcedimentoBean
at java.lang.Class.forName0(Native Method)

Esta parte do log sugere que ele não está encontrando sua entidade GrupoProcedimentoBean. Dá uma conferida se o caminho da classe (br/com/sgdi/bean/grupoProcedimento/GrupoProcedimentoBean) está correto. Se estiver, verifica se ela foi compilada, vai lá no WEB-INF/classes e verifica se existe o .class para esta classe.

É quase certo que uma destas duas é a causa! =]

bruno_savi

então eu ja havia verificado isso…
mas la ta certinho compilado o caminho correto
não sei o pq de acontecer isso
:frowning:

S

então,

Caused by: java.lang.ClassNotFoundException: br/com/sgdi/bean/grupoProcedimento/GrupoProcedimentoBean

ele não consegui encontrar esse cara ai…

post seu cfg ai …

bruno_savi
<!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.dialect">
		org.hibernate.dialect.PostgreSQLDialect
	</property>
	<property name="hibernate.connection.driver_class">
		org.postgresql.Driver
	</property>
	<!--  <property name="hibernate.connection.url">
		jdbc:postgresql://localhost/hibernate?autoReconnect=true
	</property> -->
	<property name="hibernate.connection.username">postgres</property>
	<property name="hibernate.connection.password">postgres</property>

	<!-- Condiguração do c3p0 -->

	<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>

	<!-- Configurações de debug -->
	<property name="show_sql">true</property>
	<property name="hibernate.generate_statistics">true</property>
	<property name="hibernate.use_sql_comments">true</property>

	<!-- Mapeamento -->
	<property name="connection.driver_class"></property>
	<mapping resource="br/com/sgdi/bean/grupoProcedimento/GrupoProcedimento.hbm.xml" />
	<mapping resource="br/com/sgdi/bean/origem/Origem.hbm.xml" />
	<mapping resource="br/com/sgdi/bean/procedimento/Procedimento.hbm.xml" />
	<mapping resource="br/com/sgdi/bean/profissional/Profissional.hbm.xml" />
	<mapping resource="br/com/sgdi/bean/regional/Regional.hbm.xml" />
	<mapping resource="br/com/sgdi/bean/rotina/Rotina.hbm.xml" />
	<mapping resource="br/com/sgdi/bean/sala/Sala.hbm.xml" />
	<mapping resource="br/com/sgdi/bean/tipoPedido/TipoPedido.hbm.xml" />
	<mapping resource="br/com/sgdi/bean/unidade/Unidade.hbm.xml" />

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

Cara… sua classe tem este “Bean” no final mesmo?!

Tente verificar também se sua classe implementa direta ou indiretamente “Serializable”.

Criado 5 de setembro de 2007
Ultima resposta 5 de set. de 2007
Respostas 8
Participantes 3