1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

cdi não injeta entitymanager

oi pessoal, não estou conseguindo fazendo com que o cdi injete o entitymanager, sempre da nullpointer. Segue configuração:

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_1_0.xsd"
    version="1.0">
    <persistence-unit name="tutoroo" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:/tutoroo</jta-data-source>
        <properties>
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.format_sql" value="false" />
            <property name="hibernate.hbm2ddl.auto" value="create-drop" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
        </properties>
    </persistence-unit>
</persistence>
public class ProdutorEntityManager implements Serializable{

    private EntityManagerFactory factory = Persistence.createEntityManagerFactory("tutoroo");
//    private EntityManager entityManager = factory.createEntityManager();

    @Produces
    @PersistenceContext
    @RequestScoped
    public EntityManager criaEntityManager(){
        return factory.createEntityManager();
    }

    public void dispose(@Disposes EntityManager em){
        em.close();
    }
}
public class UsuarioDaoImp implements UsuarioDao{

    @Inject
    private EntityManager manager; 

    public void salvar(Usuario usuario){
        manager.persist(usuario);
    }
}

quando eu debugo o entitymanager na classe UsuarioDaoImp, dá: com.sun.jdi.InvocationException occurred invoking method.

Não sei o que estou fazendo errado. Alguém pode ajudar?

  • Indique qual o servidor e versão que você está usando. Assim ajuda na resolução do problema.

    afamorim   16 de set de 2014
  • o servidor é jboss-as-7.1.1

    giselezr   16 de set de 2014
  • Cara pelo oqeu eu vi no seu persistence.xml você está usando um servidor de aplicação se for o Jboos e aconselho você a usar EJB, com esses dois caras você não precisa fica se preocupando em abrir e fechar cada transação com o JPA basta fala para a sua implementação da interface de negocio que ele instancia o entityManager

    Pedro8001   18 de set de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java cdi persistência ou faça a sua própria pergunta.