Problema com JPA javax.persistence.PersistenceException [RESOLVIDO]

5 respostas
R

Comecei a estudar JPA com hibernate, mas agora tenho um problema.
tenho 2 classes nessa estrutura de pacote:

+-persistence  
|  |  
|  +-src  
|     +-br.com.tutorial.hibernate  
|     | |  
|     | +-Pessoa.java  
|     +-teste  
|        |  
|        +-TestePersistencia.java  
"--exemplo.xml

Mas acontece que na classe TestePersistencia quando tento criar a EntityManagerFactory
Lança uma excepition

package teste;  
import javax.persistence.EntityManagerFactory;  
import javax.persistence.Persistence; 
 
public class TestePersistencia {   
    public static void main(String[] args) {      
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("exemplo");  
    }     
}

exemplo.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_1_0.xsd"  
    version="1.0">  
    
       <persistence-unit name="exemplo" transaction-type="RESOURCE_LOCAL">  
       <!-- Mapeamento da(s) Classe(s) que persistirá(ão) com o banco -->  
       <class>br.com.tutorial.hibernate.Pessoa</class>  
       <!-- Propriedades da conexão -->  
           <properties>  
           <!-- nome do driver -->  
           <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>  
           <!-- Nome do usuario do banco de dados -->  
           <property name="hibernate.connection.username" value="root"/>  
           <!-- Senha do usuario do banco de dados -->  
           <property name="hibernate.connection.password" value=""/>  
           <!-- String de  conexão -->  
           <property name ="hibernate.connection.url" value="jdbc:mysql://localhost:3306/hbm_test_db"/>  
           <!-- Banco de dados usado pelo hibernate-->  
           <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>  
       </properties>  
   </persistence-unit>  
</persistence>
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named exemplo  
     at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:56)  
     at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)  
     at teste.TestePersistencia.main(TestePersistencia.java:13)

Porque isso está acontecendo e\ou o que devo fazer para resolver?

5 Respostas

G

Olá Ramon

O arquivo exemplo.xml deveria se chamar persistence.xml.

E outro ponto, ele deveria ficar dentro da pasta META-INF que estaria dentro do src no seu caso.

Que no final ficaria assim:

+ persistence
|    + src
|    |    + META-INF
|    |    |    + persistence.xml

Acredito que seja isso.
Qualquer coisa posta novamente.

Abraços.

R

Cara não deu certo!!!

Continua dando o mesmo erro!

L

dar uma olhada nesse post para ver se ajuda http://blog.camilolopes.com.br/?p=1280

R

Cara, consegui resolver…

mudei meu arquivo exemplo para pasta src/META-INF, depois mudei o nome do arquivo exemplo.xml para persistence.xml e fiz algumas alterações

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
	<persistence-unit name="exemplo">
		<properties>
			<property name="hibernate.hbm2ddl.auto" value="none"/>
			<property name="hibernate.format_sql" value="true"/>
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
			<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
			<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/hbm_test_db"/>
			<property name="hibernate.connection.username" value="root"/>
			<property name="hibernate.connection.password" value=""/>
		</properties>
	</persistence-unit>
</persistence>

Então o resto rodou legal

MUITO Obrigado pela ajuda.

FUIIII!!!

R

.

Criado 26 de dezembro de 2009
Ultima resposta 5 de jan. de 2010
Respostas 5
Participantes 3