Ajuda - Problema de configuração hibernate no arquivo hibernate.cfg.xml

E ai pessoal!

Bom sou novo no fórum, sou programador Delphi, mas estou me aventurando no JSF com Hibernate e Spring pois vou desenvovler meu TCC da faculdade nele, já fiz aulas de java para aprender conceitos, lógica orientada a objetos, e também já estudei jsp, porém escolhi jsf porque pesquisei o mercado e vi que era o melhor e mais aceito.

É o seguinte, não sei se posso fazer isso aqui mas minha intenção não é comercial, comprei o Livro Programação Java para Web do Décio H. Luckow e Alexandre Altair de Melo que foi lançado recentemente e estou seguindo os capítulo, chegui eno capítulo do Hibernate com o MYSQL, fiz o download, imagino que segui os passos todos corretos do livro, só que quando construi o arquivo hibernate.cfg.xml, e duas classes para testar a conexão sem entrar em méritos de mapeamento de tabelas e etc.

Só que ele não conecta com o Banco, dá o seguinte erro:

20 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.5.2-Final 23 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found 29 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist 35 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling 173 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: hibernate.cfg.xml 173 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: hibernate.cfg.xml Criação inicial do objeto SessionFactory falhou. Erro: org.hibernate.HibernateException: Could not parse configuration: hibernate.cfg.xml Exception in thread "main" java.lang.NullPointerException at com.livro.capitulo3.conexao.ConectaHibernateMysql.main(ConectaHibernateMysql.java:17)

O Livro utiliza o Eclipse, e neste capítulo sobre hibernate até neste ponto, ele manda criar um Java Project, com apenas uma tabela Contato, no banco de Dados Agenda,
explicou como colocar as bibliotecas no buildpath, e depois a criação do hibernate.cfg.xml, e de duas classes para testar a conexão.

Já li vários e vários tópicos, porém a solução deles não funcionou para mim, mas como outros fizeram vou postar os meus códigos:

Hibernate.cfg.xml

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

org.hibernate.dialect.MySQL5InnoDBDialect com.mysql.jdbc.Driver jdbc:mysql://localhost/agenda root senha thread
	<!-- Usando as Configurações do C3PO para pool de conexões -->
	<property name="c3po.min_size">5</property>
	<property name="c3po.max_size">20</property>
	<property name="c3po.timeout">300</property>
	<property name="c3po.max_statements">50</property>
	<property name="c3po.idle_test_period">3000</property>
	
	<!-- Configurações de Debug -->
	<property name="show_sql">true</property>
	<property name="format_sql">true</property>
	<property name="generate_statistics">true</property>
	<property name="use_sql_comments">true</property>  
</session-factory>

[/code]

Classe HibernateUtil.java

[code]package com.livro.capitulo3.conexao;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil
{
private static final SessionFactory sessionFactory = buildSessionFactory();

private static SessionFactory buildSessionFactory()
{
	try
	{
		Configuration cfg = new Configuration();
		
		cfg.configure("hibernate.cfg.xml");
		return cfg.buildSessionFactory();
	}
	catch (Throwable e)
	{
		System.out.println("Criação inicial do objeto SessionFactory falhou. Erro: "+e);
		throw new ExceptionInInitializerError(e);
	}
}

public static SessionFactory getSessionFactory()	{
	return sessionFactory;
}

}
[/code]

Classe ConectaHibernatemysql.java

[code]package com.livro.capitulo3.conexao;

import org.hibernate.Session;

public class ConectaHibernateMysql
{
public static void main(String[] args)
{
Session sessao = null;
try
{
sessao = HibernateUtil.getSessionFactory().openSession();
System.out.println(“Conectou”);
}
finally
{
sessao.close();
}
}
}[/code]

Eu meio que entendi o que aconteceu, o método da classe HibernateUtil está retornando null, o arquivo cfg não le, mas eu não sei o que eu faço porque honestamente sou leigo em hibernate, já li várias soluções, mas nenhuma funcionou, até porque a organização da configuração do hibernate parece ser bem pessoal, porque vi vários tipos diferentes, bom vou listar tudo que eu já tentei:

colocar hibernate. antes dos nomes das propriedades por exemplo name="hibernate.dialect" ao invés de name="dialect";

Colocar o número da porta na string de conexão, a minha porta do MYSQL é a padrão 3306;

Tentei colocar o caminho do arquivo, que já está na raiz.

Bom talvez seja um pouco complicado pelo fato de que eu esteja seguindo o livro, que pode ser diferente de uma padrão dos programadores, mas não sei nem por onde começar a testar, eu utilizava o eclipse para jsp nas aulas, então a conexão entre jdbc e mysql funcionava, porém para o livro coloquei tudo em um workspce diferente.

Utilizo o Windows 7, minha próxima solução seria formatar meu PC, e virtualizei o Ubuntu, também ia testar nele, apesar de não ser expert em linux, mas antes queria saber se alguém comprou este livro, ou se já passou pelo mesmo problema, ou se tem de repente o e-mail dos autores, para que possa entrar em contato!

Desde já obrigado a todos, gostei muito do fórum, desculpe se cometi algum erro grotesco, mas estou começando, e espero um dia poder ajudar alguém!

Vlw galera!

Você importou as bibliotecas?
Você esqueceu de identificar a porta 3306
Ai vai meu hibernate cfg:

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

org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/trabalhofinal admin admin false [/code]

em que lugar da aplicação vc colocou o xml de config do hibernate… na raiz do projeto…?

23 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found   

Acho que o hibernate não está achando o arquivo de configuração

kra, tente trocar o cfg.configure(“hibernate.cfg.xml”) por apenas cfg.configure()
não se se vai dar certo, mas tente.

falo

Obrigado a todos pela ajuda!!

Ainda não testei as soluções, mas assim que testar posto se deu certo ou não.

Preto539 - e não sei se fiz certo, mas no livro, explica para criar um Java Project, e dentro dele uma pasta lib, eu copiei todos os arquivos que são necessários segundo o livro, depois eu adicionei eles ao build path, e os jars apareceram na reference libraries(acho que é isso mesmo), existe mais alguma coisa pra fazer?

leopoldof - EU coloquei o arquivo xml na raiz, dentro da pasta src fora de qualquer pacote.

Vou testar todas as soluções, depois eu posto de novo a resposta!

Obrigado! :smiley:

Bom dia pessoal!

EU fiz as mudanças que o pessoal indicou porém não funcionou. :frowning: :?

Coloquei hibernate. antes dos nomes da propriedade;

Coloquei apenas cfg.configure() ao invés de cfg.configure("hibernate.cfg.xml");

O arquivo está na pasta raiz, src, eu fiz um teste, retirei o arquivo de lá e rodei novamente, então apareceu a mensagem de que o arquivo hibernate.cfg.xml não havia sido encontrado.

Quanto as bibliotecas, acho que copiei todas, copiei o arquivo hibernate3.jar, e todos os arquivos da pasta lib\required, o conector do mysql com o java, e os arquivos da biblioteca slf4j.

Como o exemplo explicou, criei uma pasta lib, e joguei todos lá dentro, depois adicionei eles no build path, pela opção add jars, existe algo mais além disso?

Bom como eu disse, eu utilizo o Windows 7 Professional 64 bits, tem algum problema?

Obrigado a todos pela ajuda!

Está em qual pacote a sua cfg ?
Cmg algumas vezes dava erro por não estar no pacote padrão.

Vou postar a estrutura do meu projeto:

package com.livro.capitulo3.conexao - Tem duas classes de conexão, HibernateUtil.java e ConectaHibernatemysql.java;

package com.livro.capitulo3.crudxml - Seria as classes do mapeamento com a tabela, nela tem a classe Contato.java e Contato.hbm.xml, eu não terminei o mapeamento completo, dentro deste pacote ainda tem a clase ContratoCrudXML.java que tem os métodos funcionais. Tenho que terminar tudo para que funcione?

A pasta lib estão todos os arquivos jar, que depois foram adicionados ao build path pela opçãoo add jars.

Obrigado a todos, pela ajuda.


Testei seu cfg aqui e funcionou perfeitamente, olha so como funcionou, amanha do uma olhada nas outras classes ^^", de uma testada não dessista também demorei pra aprender várias coisas com ele rsrsr e sempre que mudar algo no cfg de um limpar e contruir.

Se não me engano na parte que você diz que não terminou ele so iria “reclamar” desse jeito unmapped class .


Vlw!!

Eu achei no eclipse on dá um clean, e build, porém ainda não funciona!

Antes de formatar minha máquina, virtualizei um XP, e vou testar, se funcionar é minha máquina, porque eu estou com o SO x64 e os programas todos x86, eu já baixei todas as versões respectivas e vou fazer um teste.

Qualquer coisa eu posto aqui.

Obrigado pela ajuda.

Caraca não sei to começando a achar que sou eu!!

O problema é na classe HibernateUtil nem chega na classe conexão, eu não sei mais pra onde eu vou!!

Instalei um windows XP no VMWare instalei tudo do zero, e não funcionou!!!

Poies é ! :frowning: :?

Aceito novas sugestões!!!

Calma, quando eu chegar em casa lhe passo um projeto meu bem simples que usa a conexão rsrsrs, dai você podera compara aonde está errado.
Abs.

Putz to até emocionado! rsrs

Consegui resolver, na verdade não fiz nada muito espetacular, continuei lendo o capítulo do livro e ele indicou uma ferramenta Hibernate Tools que cria o arquivo hibernate.cfg.xml automaticamente, você informa apenas os parâmetros, como banco, driver, url de conexão, fiz isso, ele criou o arquivo (igual ao que eu digitei :?), e funcionou perfeitamente.

Agora porque, só Murphy e mais alguém no universo deve saber.

Obrigado a todos que dedicaram um pouco do seu tempo sem nem mesmo me conhecer!!!

Por isso que eu gosto da TI! :smiley:

E aproveitando, como eu coloco o tópico como resolvido?

Poutz eu pensei que você ja estava criando por la, mais você comparou os dois depois para descobrir qual o erro?

Quando eu tive um problema em delphi dai você pode ta la pra resolver rsrsr.

Eu não tinha criado por lá, eu não sei, nem comparei ainda, mas tava tudo igual até onde eu vi!!!

Agora funciona tudo!!

Espero que eu possa mesmo ajuda pelo menos no Delphi já to mais em casa!!!

E aê pessoal, boa tarde. Reabrindo o tópico, por conta do mesmo livro. Estou parado no capítulo 6. Fiz tudo o que manda no livro mas estou recebendo o seguinte erro: “Criação inicial do objeto SessionFactory falhou: Erro: java.lang.NoSuchMethodError: javax.persistence.UniqueConstraint.name()Ljava/lang/String;”

Não estou muito certo, mas acho que ele apareceu depois que acrescentei os dois jars(el-api-2.2 e el-impl-2.2). Caso vcs tenham o projeto ainda, poderiam me ajudar? Estou usando a idéia do livro para desenvolver um sistema aqui na empresa onde trabalho. Não mudei nada até agora em relação ao livro, bom, só o nome do projeto, é claro…mas de resto está a mesma coisa…não sei mais o que fazer!!!..minha configuração é esta: Win7 Pro 64bits, JDK 1.7.0, Hibernate 3.6.8 Final, Hibernate Commons Annotations 3.2.0 Final, Spring Security 3.0.7 Release, MySQL Connector Java 5.1.18, Apache Tomcat 7.0.2 e Eclipse Indigo 64bits

HELP!!!

Ninguém pra me ajudar?!?!

Pessoal, consegui sair do capítulo…e não fiz nada demais!

1º - Retirei todos os JAR’s da aplicação e recoloquei, atualizando o que tinha que atualizar…só no Spring Security que coloquei o 3.0.5…não sei se faz sentido mas como o facelets-taglib só vai até essa versão no site do repositório, resolvi deixar o SS da mesma versão pra ver qual é!!..e funfou aqui!

2º - A dica do Cristiano funcionou perfeitamente aqui. O “Bad Credencials” parou de acontecer quando retireia linha do algoritmo de criptografia da aplicação. Não testei ainda zerar a base, recolocar o MD5 de volta e depois cadastrar um usuário, assim que eu tiver mais tempo faço isso. Meu prazo pra entrega do sistema acaba dia 31…tô na m@#$da…

3º - Estou utilizando dois bancos ao mesmo tempo pra testar a aplicação. O MySQL é o padrão de todo desenvolvedor caseiro, mas como aqui só se usa Oracle, apanhei um pouquinho agora no final pra descobrir um erro que me aconteceu na hora de gerar a tabela de permissões pelo HIbernate. Um consultor aqui da empresa me socorreu nessa. O Oracle não aceita o “?autoReconnect=true”…estava dando erro direto pra criar a tabela. Quando ele viu isso e retirou, pq achou estranho esse código, retestei e funfou na moral…

Bom, agora vamos que vamos pq o tempo não pára, como dizia o poeta Cazuza…capítulo 7, aí vou eu…

Galera, qualquer coisa é só me mandar e-mail, blz?..estou a disposição pra tentar ajudar no que for preciso. No GUJ tbm é fácil de me localizar…eu postei algumas coisas lá sobre essas dúvidas do livro.

Abração!!! :smiley: