[RESOLVIDO] Persistence Hibernate

Olá pessoal, estou tentando fazer um projeto com o hibernate, mas não tenho costume com o referido. De cara, já tomei um "Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named projeto".
Tenho experiencia com toplink, então creio não ser tãao imensa a diferença.

Eis o 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="projeto" transaction-type="RESOURCE_LOCAL">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		
		<class>br.com.projeto.modelo.Item</class>
		<class>br.com.projeto.modelo.Cotacao</class>
		<class>br.com.projeto.modelo.Produto</class>

		<properties>
			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.driver" />
			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/projeto" />
			<property name="javax.persistence.jdbc.user" value="root" />
			<property name="javax.persistence.jdbc.password" value="" />

			<property name="hibernate.hbm2dll.auto" value="create-drop" />
			<property name="hibernate.show_sql" value="true" />
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
		</properties>
	</persistence-unit>
</persistence>

Já revisei mto esse persistence para saber se foi erro de digitação ou algo do gênero, creio que não seja isso.
O jar do mysql consta no lib.
Os jars do Hibernate constam no lib.

O meu JPAUtil:

package br.com.projeto.dao;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class JPAUtil {
	private static EntityManagerFactory emf = Persistence.createEntityManagerFactory("projeto");

	public EntityManager getEntityManager() {	
		return JPAUtil.emf.createEntityManager();
	}
}

Isso não alterou do toplink, creio estar correto.

O meu produtoBean:

package br.com.projeto.mb;

import javax.faces.bean.RequestScoped;

import javax.faces.bean.ManagedBean;

import br.com.projeto.dao.DAO;
import br.com.projeto.modelo.Produto;

@ManagedBean
@RequestScoped
public class ProdutoBean {
	private Produto produto = new Produto();

	public Produto getProduto() {
		return produto;
	}
	
	public void setProduto(Produto produto) {
		this.produto = produto;
	}

	public void novo() {
		DAO<Produto> dao = new DAO<Produto>(Produto.class);
		dao.adiciona(this.produto);
		this.produto = new Produto();
	}

}

Creio também que não houve mistérios aí, pelomenos não algum que eu possa ter notado.

Para testar a classe, criei um main simples tentando adicionar o produto à base:

import br.com.projeto.mb.ProdutoBean;
import br.com.projeto.modelo.Produto;


public class Teste {

	public static void main(String[] args) {
		Produto p = new Produto();
		p.setDescricao("Descrição do produto 1");
		p.setNome("Produto 1");
		p.setPreco(13.4);
		ProdutoBean pb = new ProdutoBean();
		pb.setProduto(p);
		pb.novo();
	}
	
}

agradeço a ajuda

Nenhuma sujestão? Ja tentei alterar os jars do hibernate mas ainda sem sucesso, nem logar no banco de dados está funcionando. Deixei o show_sql true para saber de qualquer ação, mas nada funciona.

Voce ja adicionou as libs no classpath do projeto ?

sim, tanto configurando dentro das bibliotecas nativas do meu container, quando no classpath e na lib do web-inf.

Vamos por eliminatoria entao, hehehe:

Tente colocar a porta da conexao:

<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/projeto" /> 

Coloque localhost:3306

Eu já havia tentado isso também, não funcionou :lol:

Peraí, você adicionou os jars na mão, e também está usando do container? tem certeza que não há conflito aí?

Não rodrigo, eu tentei das 3 formas, e com nenhuma funcionou, no momento estou apontando somente no classpath

Cara postei uma solução no link abaixo, talvez seja seu caso.

Eu tenho experiência com JPA, só que não sei que diabos acontece aqui. Testei com toplink e tudo funciona perfeitamente, porém quero tentar aprender o hibernate, o que anteriormente eu aboli por ser um baita pé no saco.
O local do arquivo persistence.xml está correto.
As libs estão corretas.
O xml validado e batido letra a letra com o de outros exemplos.
mas o bendito não quer funcionar.

Tentei reproduzir o exemplo do Hebert em um novo projeto, mas também não consegui, a mesma mensagem ocorre. Isso utilizando os jars e a versão do hibernate apontada lá no post também.

Das 2 uma, ou eu sou zicado com hibernate, ou o hibernate é zicado cmg kkkkkkkkk

Resumidamente, as configurações do persistence do hibernate 4 alteraram um pouco, então estou utilizando a versão 3.
O persistence não foi alterado em nada, e nem as classes, continuam as mesmas postadas no início do tópico.
O que diferiu realmente foi a questão das libs e onde estavam.

As libs estão no classpath e na pasta lib do projeto, mas para rodar também, não é necessário a que as libs constem na pasta lib uma vez que o catalina.properties é configurado apontando para uma pasta que já contenha as libs referidas.
Então, tenho as libs no classpath e no lib do projeto.

tenta fazer assim na sua classe Teste.

import br.com.projeto.mb.ProdutoBean;
import br.com.projeto.modelo.Produto;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class Teste {

	public static void main(String[] args) {

                EntityManagerFactory factory = Persistence.createEntityManagerFactory("projeto");
		EntityManager manager = factory.createEntityManager();

		Produto p = new Produto();
		p.setDescricao("Descrição do produto 1");
		p.setNome("Produto 1");
		p.setPreco(13.4);
		

                manager.persist(p);
		manager.getTransaction().begin();
		manager.persist(p);
		manager.getTransaction().commit();
		factory.close();
	}
	
}

vc ta usando maven? se tiver adiciona a dependencia

org.hibernate hibernate-entitymanager 4.1.7.Final

se nao tiver, veja se esse jar ta no seu projeto

Opa, desculpa, nao vi que estava resolvido… coloca oq vc fez pra resolver ai, pode ajudar outras pessoas