[RESOLVIDO] Erro: org.hibernate.MappingNotFoundExcept / Hibernate

Boanoite

Galera, tou acompanha o livro Programao Java para web
estou com um problema no exercico de hibernate.
quando eu tento inserir os dados para o banco aparece esses erros
dei uma olhada pelo o que eu entendir o erro esta no mapeamento da classe no xml - hibernate.cfg.xml
que eh exatamente o endereco do meu package mais a classe
com.livro.capitulo3.crudxml
Contato

0 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.5.2-Final 16 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found 16 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist 16 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling 109 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: hibernate.cfg.xml 109 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: hibernate.cfg.xml Criaçao inicial do objeto SessionFactory falhou. Erro: org.hibernate.MappingNotFoundException: resource: com/livro/capitulo3/crudxml/Contato.hbm.xml not found Erro ao fechar operaçao de inserçao. Mensagem: null 188 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : com/livro/capitulo3/crudxml/Contato.hbm.xml Exception in thread "main" java.lang.ExceptionInInitializerError at com.livro.capitulo3.conexao.HibernateUtil.buildSessionFactory(HibernateUtil.java:18) at com.livro.capitulo3.conexao.HibernateUtil.<clinit>(HibernateUtil.java:8) at com.livro.capitulo3.crudxml.ContatoCrudXML.salvar(ContatoCrudXML.java:15) at com.livro.capitulo3.crudxml.ContatoCrudXML.main(ContatoCrudXML.java:148) Caused by: org.hibernate.MappingNotFoundException: resource: com/livro/capitulo3/crudxml/Contato.hbm.xml not found at org.hibernate.cfg.Configuration.addResource(Configuration.java:665) at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1679) at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1647) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1626) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1600) at org.hibernate.cfg.Configuration.configure(Configuration.java:1520) at com.livro.capitulo3.conexao.HibernateUtil.buildSessionFactory(HibernateUtil.java:13) ... 3 more

hibernate.cfg.xml

[code]<?xml version='1.0' encoding='utf-8'?>

org.hibernate.dialect.MySQL5InnoDBDialect com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/agenda root 123
	<!-- 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>
	
	<mapping resource="com/livro/capitulo3/crudxml/Contato.hbm.xml"/>
		
		</session-factory>

[/code]

Conexao

[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çao inicial do objeto SessionFactory falhou. Erro: " + e);
			throw new ExceptionInInitializerError(e);
		}
	}

	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}
}

package com.livro.capitulo3.conexao;

import org.hibernate.classic.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();
		}
	}
}

Contato

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

import java.sql.Date;

public class Contato {

private int codigo;
private String nome;
private String telefone;
private String email;
private Date dataCadastro;
private String observacao;

// get e set
[/code]

Crud

package com.livro.capitulo3.crudxml;

import java.util.List;
import java.sql.Date;
import org.hibernate.*;

import com.livro.capitulo3.conexao.HibernateUtil;

public class ContatoCrudXML {

	public void salvar(Contato contato) {
		Session sessao = null;
		Transaction transacao = null;
		try {
			sessao = HibernateUtil.getSessionFactory().openSession();
			transacao = sessao.beginTransaction();
			sessao.save(contato);
			transacao.commit();
		} catch (HibernateException e) {
			System.out.println("Nao foi possivel inserir o contato. Erro: "
					+ e.getMessage());
		} finally {
			try {
				sessao.close();
			} catch (Throwable e) {
				System.out
						.println("Erro ao fechar operaçao de inserçao. Mensagem: "
								+ e.getMessage());
			}
		}
	}


	public static void main(String[] args) {
		ContatoCrudXML contatoCrudXML = new ContatoCrudXML();
		String [] nomes = {"Jardel", "Kennedy", "Alexander"};
		String [] fones = {"88895154", "01020304", "01020305"};
		String [] emails = {"jardel@java.com", "kennedyMR@php.com", "alexanderVit@java.com"};
		String [] observacoes = {"Novo Cliente", "Cliente em dia", "Ligar na quinta"};
		Contato contato = null;
		
		for(int i=0; i<nomes.length; i++)
		{
			contato = new Contato();
			contato.setNome(nomes[i]);
			contato.setTelefone(fones[i]);
			contato.setEmail(emails[i]);
			contato.setDataCadastro(new Date(System.currentTimeMillis()));
			contato.setObservacao(observacoes[i]);
			contatoCrudXML.salvar(contato);
		}
	}
}

Você adicionou o Contato.hbm.xml no mesmo pacote (diretório) que está a classe Contato?

Romarcio
muito obrigado cara, deu certo nao vir esse detalhe estava apenas no SRC e nao tinha colocado no diretorio do proprio package, tou começando agora com hibernate faltou experiencia, rsrs.

fica ae o topico para possiveis erros de alguem.
um abraço.

:thumbup:

Olá Pessoal,

Meu problema é bem parecido com o do Jardel. Já tentei colocar hibernate.cfg.xml na mesma pasta, SRC, da minha classe, mas o problema persiste. Se alguém puder me ajudar, estou enviando o código abaixo:

[code]

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

com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/biblioteca
root
165145jgr

1

org.hibernate.dialect.MySQLDialect

thread

org.hibernate.cache.NoCacheProvider

true

update

[/code]

Este é o erro que é retornado:

dez 09, 2014 6:09:27 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager
INFO: HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
dez 09, 2014 6:09:27 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.7.Final}
dez 09, 2014 6:09:27 PM org.hibernate.cfg.Environment
INFO: HHH000206: hibernate.properties not found
dez 09, 2014 6:09:27 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
dez 09, 2014 6:09:27 PM org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml
dez 09, 2014 6:09:27 PM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: /hibernate.cfg.xml
dez 09, 2014 6:09:27 PM org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity
WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
dez 09, 2014 6:09:27 PM org.hibernate.cfg.Configuration addResource
INFO: HHH000221: Reading mappings from resource: com.gontuseries.hibernate.Student_Info
Exception in thread “main” org.hibernate.MappingNotFoundException: resource: com.gontuseries.hibernate.Student_Info not found
at org.hibernate.cfg.Configuration.addResource(Configuration.java:769)
at org.hibernate.cfg.AnnotationConfiguration.addResource(AnnotationConfiguration.java:124)
at org.hibernate.cfg.AnnotationConfiguration.addResource(AnnotationConfiguration.java:47)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2257)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2229)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2209)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:214)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:47)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2162)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:202)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:47)
at org.hibernate.cfg.Configuration.configure(Configuration.java:2077)
at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:184)
at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:47)
at org.hibernate.cfg.Configuration.configure(Configuration.java:2056)
at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:178)
at com.gontuseries.hibernate.Main.main(Main.java:16)

Muito Obrigado.