Hibernate funciona quando quer[De novo]

18 respostas
luci.al

Olá!

a pouco tempo comecei a desenvolver com o eclipse, sempre usei netbeans.
eu criei a lib do hibernate com jpa, criei um projeto e mandei executar…o console apontou que estava faltando a jar commons-logging…baixei a jar
e funcionou até eu fechar o eclipse…quando eu abri novamente dava um erro enorme.
então eu pesquisei sobre a commons logging e descobrir que é melhor utilizar a jar log4j e deletei a commons logging e passei a utilizar a log4j.
só que agora ele fica variando cadastra uma vez sim e a outra apresenta esse erro:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory  
    at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:105)  
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:124)  
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)  
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)  
    at main.<init>(main.java:21)  
    at main.main(main.java:40)

e fica nisso uma vez sim e uma vez nao.
pelo erro parece que ele está dizendo que nao ta encontrando a commons-logging correto?
mas se eu adicionar a jar do commons-logging aparece esse erro:

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. Exception in thread "main" java.lang.ExceptionInInitializerError at org.hibernate.cfg.Configuration.reset(Configuration.java:168) at org.hibernate.cfg.AnnotationConfiguration.reset(AnnotationConfiguration.java:228) at org.hibernate.cfg.Configuration.<init>(Configuration.java:187) at org.hibernate.cfg.Configuration.<init>(Configuration.java:191) at org.hibernate.cfg.AnnotationConfiguration.<init>(AnnotationConfiguration.java:103) at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:107) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:124) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33) at main.<init>(main.java:21) at main.main(main.java:40) Caused by: java.lang.NullPointerException at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:144) at org.hibernate.cfg.Environment.<clinit>(Environment.java:529) ... 11 more
o que pode está acontecendo?

18 Respostas

CharlesAlves

Como é que tais chamando o log?!

luci.al

Oi CharlesAlves.

como assim?
vc fala do jar do log? só coloquei ele na lib do hibernate.

talvez ajude:

persistence xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
	<persistence-unit name="l" transaction-type="RESOURCE_LOCAL">
		<class>bean.Aluno</class>
		<properties>
			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/test"/>
			<property name="javax.persistence.jdbc.user" value="root"/>
			<property name="javax.persistence.jdbc.password" value="almeida_luciana"/>
		</properties>
	</persistence-unit>
</persistence>
entity:
package bean;

import java.io.Serializable;

import javax.faces.event.ActionListener;
import javax.persistence.*;


@Entity
@Table(name="aluno")
public class Aluno implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(unique=true, nullable=false)
	private int idaluno;

	@Column(nullable=false, length=45)
	private String nome;

	@Column(nullable=false, length=45)
	private String serie;

    public Aluno() {
    }

	public int getIdaluno() {
		return this.idaluno;
	}

	public void setIdaluno(int idaluno) {
		this.idaluno = idaluno;
	}

	public String getNome() {
		return this.nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getSerie() {
		return this.serie;
	}

	public void setSerie(String serie) {
		this.serie = serie;
	}
	
	

	public Aluno( String nome, String serie) {
		
		
		this.nome = nome;
		this.serie = serie;
	}

	public void salvar(ActionListener e){
		
		Aluno a=new Aluno();
		a.setNome(getNome());
		a.setSerie(getSerie());
		
		 	EntityManagerFactory emf=Persistence.createEntityManagerFactory("l");
	       EntityManager en=emf.createEntityManager();
	       
	      en.getTransaction().begin();
		
	      en.persist(a);
		
		
		
		
		  en.getTransaction().commit();
	       en.close();
	       emf.close();
		
		
	}
}

criei um projeto web so para testar o ide mas como tava dando erro criei essa classe de aplicação simples para vê se funcionava:

public class main {

	public main() {

		Aluno a = new Aluno();
		a.setNome("kraisadas");
		a.setSerie("dasd");

		EntityManagerFactory emf = Persistence.createEntityManagerFactory("l");
		EntityManager en = emf.createEntityManager();

		en.getTransaction().begin();

		en.persist(a);

		en.getTransaction().commit();
		en.close();
		emf.close();

	}

	public static void main(String[] args) {
		new main();

	}

}
felipe.far

Pode ser incompatibilidade de versões, as vezes você pego a última versão do log e a versão do hibernate é antiga

CharlesAlves

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
por o que me parece estão faltando as configurações do log4j.
tu criou o arquivo log4j.properties?!

se não tenta criar esse arquivo na pasta src e coloca isso nele

log4j.rootLogger=INFO, CA

#Console Appender
log4j.appender.CA = org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout = org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern = %-5p %c{1} - %m%n
luci.al

olá felipe.far

como eu não sabia exatamente quais jar’s eram necessarias, eu fui na pasta do netbeans 7.1 que já tinha as jar’s e copiei.
tem como colocar foto no forum?

CharlesAlves

As bibliotecas necessarias pra funcionar estão aqui

http://dl.dropbox.com/u/37438722/bdlib.rar

só pe substituir as que você colocou lá e adicionar ao classpath

Lucas_Abbatepaolo

CharlesAlves:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
por o que me parece estão faltando as configurações do log4j.
tu criou o arquivo log4j.properties?!

isto não é uma mensagem de erro e sim um warning dizendo que vc não configurou o log4j…isto não vai impedir sua aplicação de funcionar.

o erro esta no stacktrace gerado…

Caused by: java.lang.NullPointerException  
at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:144)  
at org.hibernate.cfg.Environment.<clinit>(Environment.java:529)

parece que sua aplicação não achou o seu arquivo de configuração…onde ele esta localizado no seu projeto…

So como dica…de uma estudada em MAVEN …isso vai resolver seu problema com dependencias…

[]'s

luci.al

CharlesAlves
não tinha criado esse arquivo…crie mas continua do mesmo jeito.
vou baixar essas bibliotecas que vc mandou e substituir para ver.

Lucas Abbatepaolo
obrigada pela dica. vou estudar sim!

Lucas_Abbatepaolo

por nada estamos ai para isso…

o seu persistence.xml esta na raiz da pasta src??

luci.al

está sim!!

resolvi :smiley:
comparei as minhas jar’s e as que CharlesAlves passou estavam faltando essas 3 jars do slf4j.

obrigada a todos! :wink:

luci.al

pensei que tinha resolvido mas foi so fechar o ide :evil:…gravei um video:

[youtube]http://www.youtube.com/watch?v=bksIuyY6p1M&feature=youtu.be[/youtube]

estranho né!?
liguei para um colega de faculdade, ele disse que pode ser o IDE já que é a versão mais nova…
ele pediu para fazer um teste com o Eclipse galileu…será que pode ser isso?

Lucas_Abbatepaolo

Acho dificil ser a ide…se for problemas com lib isso vai ocorrer idependente da IDE que vc utilizar…

No eclipse vc pode verificar as lib de seu projeto atraves da opção do “JAVA BUILD PATH” que fica dentro da opção propridades do seu projeto…

vá na aba libraries e verifique se todas as lib necessarias estão no projeto… Fique atenta com versões dependendo da versão do hibernate vc deve ter libs diferentes…

Vc deu uma pesquisada sobre maven…o entendimento sobre ele é simples …e vc não estaria sofrendo com este problema…

Se quizer um material sobre o assunto…me mande uma mesagem por MP que te passo o material por email…

[]'s

luci.al

pesquisei sim!

tentei instalar ele pelo marktplace mas deu erro.
vou tentar manualmente.

Lucas_Abbatepaolo

Va em help -> install new Software e coloque esta url…

http://m2eclipse.sonatype.org/sites/m2e

[]'s

luci.al

foi ae mesmo que eu tentei …:? mas da erro.
achei um topico que ensina manualmente vou tentar.

Lucas_Abbatepaolo

guia de referencia do maven

http://www.sonatype.com/books/mvnref-book/pdf/mvnref-pdf.pdf

eclipse com maven

luci.al

obrigada Lucas Abbatepaolo.

conseguir instalar o plugin do maven e continuou do mesmo jeito.
baixei o eclipse helios e agora está funcionando normalmente com as mesmas bibliotecas.
ja fechei e abir o IDE e está sem erros :smiley:

bjim :wink:

Lucas_Abbatepaolo

Acho estranho ser problema da IDE…creio que so daria problema se vc estava usando uma sem suporte a J2EE…

Mais se solucionou o seu problema esta ok…
qualquer duvida é so postar…rs
[]'s

Criado 4 de janeiro de 2012
Ultima resposta 5 de jan. de 2012
Respostas 18
Participantes 4