Estudo JSF e JPA

Bom dia, sei que hoje é dia das mães, mas como acordei cedo deu pra dar uma estudada antes de comemorar essa data.

Estou começando a estudar Pelo livro de JSF e JPA da casa do código, mas me deparei com 1 problema e como sou iniciante não entendi o erro:

Meu 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="default"> <properties> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/fj21" /> <property name="javax.persistence.jdbc.password" value="senha" /> <property name="javax.persistence.jdbc.username" value="login" /> <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" /> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" /> </properties> </persistence-unit> </persistence>

Minha Classe para a persistencia do automóvel:

[code]import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;

public class PersistenciaAutomovel {

public static void main(String[] args) {
	EntityManager em = JPAUtil.getEntityManager();

	Automovel auto = new Automovel();
	auto.setAnoFabricacao(2010);
	auto.setModelo("Ferrari");
	auto.setObservacoes("Nunca foi batido");

	EntityTransaction tx = em.getTransaction();
	tx.begin();
	em.persist(auto);
	tx.commit();

	em.close();

}

}[/code]

Minha Classe JPAUtil:

[code]import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class JPAUtil {

private static final EntityManagerFactory emf = Persistence.createEntityManagerFactory("default");

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

}
[/code]

Quando executo a classe que faz a persistencia do automóvel acontece o seguinte erro:

Exception in thread "main" java.lang.ExceptionInInitializerError at PersistenciaAutomovel.main(PersistenciaAutomovel.java:7) Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named default at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47) at JPAUtil.<clinit>(JPAUtil.java:7) ... 1 more

achei estranho esse erro pois as classes estão exatamente como as do livro, o .jar pro mysql esta no build patch mais não consigo identificar o erro, sera que alguem pode me da 1 luz?

Amigo, de cara deu pra ver que o erro diz que a classe JPAUtil não consegue encontrar uma configuração com o name “default”. Mas veja que no seu persistence, vc declarou um perssitence-unit com esse nome.

Sugiro que vc de uma revisada no que fez, e veja se colocou tudo nos lugares corretos.

Foi exatamente isso q eu estranhei, o nome ta o mesmo, então não vejo o pq de esta dando esse erro, eu cheguei a copiar e colar os codigos do livro, mas acontece esse erro, sera que é erro de configuração de algo do eclipse?

cara, pode ser que o persistence esteja no “local” errado, por isso não esteja encontrando o XML. onde você colocou esse arquivo xml?!

COLOQUEI NA PASTA META-INF

ainda nao consegui saber o que é, sera que alguem descobriu?

Cara, essa parada de META-INF, eu nunca uso, sempre coloco na raiz do projeto. Dentro do Sorce do java.

Vou tentar fazer isso

é, coloquei na pasta mas continua dando o mesmo erro, vo ve se acho um professor meu q deu aula de programação pra ver se ele consegue resolver meu problema, ate agora n consegui

Você precisa mapear suas entidades no arquivo persistence.

Poderia me explicar melhor, pois sou iniciante no assunto.

Um exemplo:
Você precisa especificar o caminho do pacote até sua classe, e devem ser todas:

<provider>org.hibernate.ejb.HibernatePersistence</provider> <class>br.universidadejava.jpa.exemplo.Usuario</class> <properties>