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

Injeção de EntityManager em EJB Stateful vindo nula!

Olá a todos!

Meu ambiente:

  • Wildlfy 9.0.1
    • Projeto WAR

Não estou conseguindo injetar a EntityManager em meu EJB Bean Stateful, está vindo nula. Estou injetando(@EJB) meu EJB em um CDI Bean, a injeção do EJB funciona más a injeção(@PersistenceContext(type = PersistenceContextType.EXTENDED) da EntityManager dentro do EJB não funciona. Como EJB's são gerenciados pelo servidor, estou um pouco confuso com esta situação.

Exemplo de como está meu código:

Meu CDI Bean:

@Named
@ViewScoped
public class TesteBeanCDI implementes Serializable{

   @EJB
   private EjbStatefulExemplo exemplo; // Injeta perfeitamente o EJB aqui
}

Meu EjbStatefulExemplo:

@Stateful
public class EjbStatefulExemplo implements Serializable{

   @PersistenceContext(type = PersistenceContextType.EXTENDED)
   private EntityManager entityManager; // Não Injeta


   public Object buscaAlgo(){
      return entityManager.xxxx; // NullPointerException
   }
}

Atualização 1:

Meu persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="2.1">
    <persistence-unit name="sigeplanePU" transaction-type="JTA">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <jta-data-source>java:jboss/datasources/sigeplaneMySqlDS</jta-data-source>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
            <property name="hibernate.hbm2ddl.import_files" value="/META-INF/Importar-Dados/dados_iniciais.sql"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.format_sql" value="true"/>
            <!--<property name="hibernate.hbm2ddl.auto" value="create-drop"/>-->
            <property name="hibernate.hbm2ddl.auto" value="update"/>
        </properties>
    </persistence-unit>
</persistence>

E ai pessoal o que fazer??

  • Poste para nós como está configurado o seu persistence.xml

    adriano_si   31 de ago de 2015
  • @adriano_si editei a pergunta com meu persistence.xml.

    Filipe Damasceno Abreu   31 de ago de 2015
  • E como está seu DataSource com esse nome: java:jboss/datasources/sigeplaneMySqlDS ???

    adriano_si   31 de ago de 2015
  • Isso mesmo! Se eu transformar meu EJB em um Bean CDI, o entityManager funciona normal!

    Filipe Damasceno Abreu   31 de ago de 2015
  • Estou querendo aplicar esta solução ao meu projeto: http://uaihebert.com/quatro-solucoes-para-lazyinitializationexception/6/

    Filipe Damasceno Abreu   31 de ago de 2015
Mostrar todos os 6 comentários>
  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!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags ejb cdi java java-ee web wildfly ou faça a sua própria pergunta.