Olá a todos.
Seguindo o passo a passo desta aula, além de pesquisar por erros desta natureza com outros alunos em outros projetos, ainda estou com o seguinte problema: Não consigo fazer a injeção de dependência do EntityManager, como explicado na aula.
Onde posso ter errado?
Meu beans.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
version="1.1" bean-discovery-mode="all">
<scan>
<exclude name="com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService"/>
</scan>
</beans>
Meu ProdutoDao.java
package br.com.caelum.vraptor.dao;
import java.util.List;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import br.com.caelum.vraptor.model.Produto;
@RequestScoped
public class ProdutoDao {
private final EntityManager em;
@Inject
public ProdutoDao(EntityManager em) {
this.em = em;
}
public ProdutoDao() {
this(null);
}
public void adiciona(Produto produto) {
em.getTransaction().begin();
em.persist(produto);
em.getTransaction().commit();
}
public void remove(Produto produto) {
em.getTransaction().begin();
em.remove(busca(produto));
em.getTransaction().commit();
}
public Produto busca(Produto produto) {
return em.find(Produto.class, produto.getId());
}
@SuppressWarnings("unchecked")
public List<Produto> lista() {
return em.createQuery("select p from Produto p").getResultList();
}
}
Meu JPAUtil.java
package br.com.caelum.vraptor.util;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class JPAUtil {
public static EntityManager criaEntityManager() {
EntityManagerFactory factory = Persistence
.createEntityManagerFactory("default");
return factory.createEntityManager();
}
}
Meu EntityManagerProducer.java
package br.com.caelum.vraptor.util;
import javax.enterprise.context.RequestScoped;
import javax.enterprise.inject.Produces;
import javax.persistence.EntityManager;
public class EntityManagerProducer {
@Produces
@RequestScoped
public EntityManager criaEM() {
return JPAUtil.criaEntityManager();
}
}