[RESOLVIDO] No Persistence provider for EntityManager named sample

Amigos
Estou aprendendo hibernate com JPA e segui a documentação do hibernate para criar este simples HelloWorld.
Ja pesquisei aqui no forum e não consegui resolver o erro abaixo. Deve ser um erro realmente muito simples de resolver mas eu ainda sou um cara muito amador no java.
Por favor peço ajuda para não ficar tanto tempo parado já que pelos tópicos antigos não consegui resolver
Agradeço o apoio desde já

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named sample
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:56)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
	at br.com.jpa.Fabrica.main(Fabrica.java:16)

Pelo que percebi normalmente este erro esta ligado ao fato do persistence.xml não estar em scr/META-INF/ mas o meu persistence.xml está.
Criei um New >> Folder e então criei , dentro da pasta src, a pasta META-INF e criei meu persistence.xml lá dentro
Abaixo o meu persistence.xml

<?xml version="1.0" encoding="UTF-8"?> 
<persistence 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"
             version="2.0">
	<persistence-unit name="sample" transaction-type="RESOURCE_LOCAL">
    	<class>br.com.jpa.vo.Tarefa</class>
 	    	<properties>
     	  	<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
       		<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
    		<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
			<property name="javax.persistence.jdbc.url" value = "jdbc:postgresql://localhost:5432/bdmac" />
			<property name="javax.persistence.jdbc.user" value = "postgres" />
			<property name="javax.persistence.jdbc.password" value = "sa" />
    	</properties>
   </persistence-unit>
</persistence>

Minha Classe que faz todo o negócio:

package br.com.jpa;
import java.util.Date;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityManager;
import javax.persistence.Persistence; 
import br.com.jpa.vo.Tarefa;

public class Fabrica {

	public static void main(String[] args) {
		// Use persistence.xml configuration
		EntityManagerFactory emf = Persistence.createEntityManagerFactory("sample"); //O erro da logo aqui nesta primeira linha
		EntityManager em = emf.createEntityManager(); // Retrieve an application managed entity manager

		// Work with the EM
		Tarefa tarefa = new Tarefa();
		tarefa.setIdTarefa(29);
		tarefa.setDataTarefa(new Date());
		em.persist(tarefa);
		
		em.close();
		emf.close(); //close at application end		
	}
}

Minha classe de persistencia.:


package br.com.jpa.vo;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Id;
import javax.persistence.Entity;

@Entity
public class Tarefa implements Serializable{
	private static final long serialVersionUID = 1L;
	@Id
	private int idTarefa;
	private Date dataTarefa;
	
	public Tarefa(){}

	public int getIdTarefa() { return idTarefa; } 
	public void setIdTarefa(int idTarefa) { 	this.idTarefa = idTarefa; }	
	public Date getDataTarefa() { return dataTarefa; }	
	public void setDataTarefa(Date dataTarefa) { this.dataTarefa = dataTarefa; }	
}

Não acredito que esteja faltando algum JAR mas pra adiantar ja vou colocar aqui todos os jars que eu faço referencia:

  • postgresql-9.1.jdbc4.jar
  • ejb3-persistence.jar
  • hibernate3.jar
  • slf4j-api-1.5.2.jar
  • javassist-3.4.GA.jar
  • commons-collections-3.1.jar
  • dom4j-1.6.jar
  • jta-1.1.jar
  • antlr-2.7.6.jar
  • slf4j-simple-1.5.2.jar
  • hibernate-jpa-2.0-api-1.0.1.Final.jar

Ola amigos.
Será que tem alguma coisa postada fora das regras no meu tópico que esta impossibilitando que eu consiga alguma dica para resolver meu problema ?
Alguem pode me dar alguma dica ?

Amigos.

Se alguém puder me ajudar me dando qualquer boa dica de como posso proceder para descobrir o problema na minha aplicação vai ser MUITO bom MUITO mesmo.

Já estou a varios dias lendo sobre todos que tiveram o mesmo problema que o meu e causas mais comuns como: “O arquivo persistence.xml fora da pasta META-INF” que não se encaixam dentro da minha situação. Não consigo descobrir o que possa estar errado. Já vi vários tutoriais na internet bem como a documentaçõ do hibernate Entity manager.

Já movi a pasta META-INF de lugar e voltei pra o lugar original pra ver se funcionava.
Já conferi se o .xml está sendo resolvido em um browser para confirmar que não tem nenhum erro na estrutra
o mesmo name (sample) do persistence unit é o mesmo nome que estou passando no momento de chamar o createEntityManagerFactory

Realmente estou parado a vários dias tentando sair do lugar de um problema que deve ser alguma coisa rídicula faltando mas que eu não consigo descobrir.

tente adicionar o jar hibernate-entitymanager-4.x.x.jar no seu classpath

2 curtidas

Paulo. Meu amigo você realmente me salvou!!
Tava DESANIMADOR estudar, passar o tempo todo procurando a solução desse problema. Tava batendo na tecla
de achar que era algo relacionado ao meu persistence.xml não estar sendo reconhecido pela aplicação. E tudo indica que eu ainda ia ficar muito tempo insistindo em buscar a solução por este lado.
A documentação do hibernate é f#*%da!!. Eles supões que você conhece o Maven e se você não conhece eles não dão uma explicação mais detalhada sobre os .jar’s necessários para os projetos. (Concorda ?).
O problema era exatamente esse que vc me indicou. Estava faltando o hibernate-entitymanager.jar.
Além desse .jar foi necessário tambem adicionar os .jars hibernate-annotations.jar e hibernate-commons-annotations.jar.
Agora estou com outro erro mas nada relacionado a esta questão. Vou continuar estudando maiores dificuldades crio um novo tópico com minhas dúvidas e problemas.
Mais uma vez agradeço muito o apoio tanto seu quanto da comunidade. Realmente essencial para o meu aprendizado.
Valeu !!!

Desculpe levantar esse tópico novamente, kkkkkkk, mas eu tive que fazer isso porque vocês salvaram o meu dia, Valeu Maninhos…So tava faltando esse jar hibernate-entitymanager-4.3.0.Final.jar, funfou tudo como eu desejava, tô feliz demais

Obrigado!