Oi pessoal.
Estou estudando JPA com TopLink e MySQL. No entanto, estou com um problema que não consigo encontrar onde pode estar dando caca.
A exception é a seguinte:
[quote]Exception in thread “main” java.lang.NullPointerException
at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.createEntityManagerFactory(EntityManagerFactoryProvider.java:120)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:60)
at br.com.NFL.persistencia.JogadorDAO.(JogadorDAO.java:17)
at br.com.NFL.negocio.NegocioJogador.inserirJogador(NegocioJogador.java:11)
at br.com.NFL.teste.Teste.main(Teste.java:13)[/quote]
Meu persistence.xml está assim:
<?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="jogadores" transaction-type="RESOURCE_LOCAL">
<provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>
<class>br.com.NFL.modelo.Jogador</class>
<properties>
<property name="toplink.logging.level" value="INFO"/>
<property name="toplink.jdbc.url" value="jdbc:mysql://localhost/jogadores"/>
<property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="toplink.jdbc.user" value="root"/>
<property name="toplink.jdbc.password" value=""/>
<property name="toplink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence>
E minha classe de DAO está assim:
package br.com.NFL.persistencia;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import br.com.NFL.modelo.*;
public class JogadorDAO {
private EntityManagerFactory factory = null;
private EntityManager em = null;
public JogadorDAO() {
factory = Persistence.createEntityManagerFactory("jogadores");
em = factory.createEntityManager();
}
public void adicionarJogador(Jogador novoJogador) {
EntityTransaction transacao = em.getTransaction();
try {
transacao.begin();
em.persist(novoJogador);
transacao.commit();
} catch (Exception e) {
transacao.rollback();
System.err.println("Erro: " + e.getMessage());
} finally {
em.close();
}
}
public Jogador pesquisarJogador(Integer codigo, Jogador jogador) {
EntityTransaction transacao = em.getTransaction();
Jogador retorno = null;
try {
transacao.begin();
retorno = (Jogador)em.find(Jogador.class, codigo);
} catch (Exception e) {
transacao.rollback();
System.err.println("Erro: " + e.getMessage());
} finally {
em.close();
}
return retorno;
}
}
Alguém pode me dizer aonde estou fazendo coisas erradas?
Abraço.