@felipeejunges escreveu:
Estou fazendo uma requisição para “/contador/{id}” pelo PostMan e quando o código chega em notificaoDAO.contador(id), recebo a mensagem de erro dizendo que notificacaoDAO é null.
PS: Estou usando Wildfly 11 com Eclipse Oxygen
Ele etá iniciando o JDNI, mas não consigo injetar, ele não inicializa o DAO.
10:31:23,633 INFO [org.jboss.as.ejb3.deployment] (MSC service thread
1-5) WFLYEJB0473: JNDI bindings for session bean named
’NotificacaoDAOEJB’ in deployment unit 'deployment “SouVizinho.war”'
are as follows:java:global/SouVizinho/NotificacaoDAOEJB!br.com.br.ejb.NotificacaoDAOEJB
java:app/SouVizinho/NotificacaoDAOEJB!br.com.br.ejb.NotificacaoDAOEJB
java:module/NotificacaoDAOEJB!br.com.br.ejb.NotificacaoDAOEJB
java:global/SouVizinho/NotificacaoDAOEJB
java:app/SouVizinho/NotificacaoDAOEJB java:module/NotificacaoDAOEJB10:31:23,634 INFO [org.jboss.as.ejb3.deployment] (MSC service thread
1-5) WFLYEJB0473: JNDI bindings for session bean named
’NotificacaoControladorEJB’ in deployment unit ‘deployment
"SouVizinho.war"’ are as follows:java:global/SouVizinho/NotificacaoControladorEJB!br.com.souvizinho.controlador.NotificacaoControladorEJB
java:app/SouVizinho/NotificacaoControladorEJB!br.com.souvizinho.controlador.NotificacaoControladorEJB
java:module/NotificacaoControladorEJB!br.com.souvizinho.controlador.NotificacaoControladorEJB
java:global/SouVizinho/NotificacaoControladorEJB
java:app/SouVizinho/NotificacaoControladorEJB
java:module/NotificacaoControladorEJBController
import javax.ejb.EJB; import javax.ejb.LocalBean; import javax.enterprise.context.RequestScoped; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; @Path("ejb/notificacao") @Stateless @LocalBean public class NotificacaoControladorEJB { SmartJava smartjava = new SmartJava(); @EJB NotificacaoDAOEJB notificacaoDAO; @GET @Produces("application/json; charset=UTF-8") @Path("/contador/{id}") public Notificacao contadorGet(@PathParam("id") int id) { long quantidade; try { quantidade = notificacaoDAO.contador(id); return new Notificacao(quantidade); } catch(Exception e) { quantidade = 0; System.err.println(smartjava.getFullStackTrace(e)); return new Notificacao(quantidade); } }
DAO
import java.util.List; import javax.ejb.LocalBean; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @Stateless @LocalBean public class NotificacaoDAOEJB { //private EntityManagerFactory entityManagerFactory; @PersistenceContext private EntityManager entityManager; SmartJava sj = new SmartJava(); public Notificacao Salvar(Notificacao notificacao) { try { this.entityManager.getTransaction().begin(); this.entityManager.persist(notificacao); this.entityManager.getTransaction().commit(); } catch (Exception e) { System.out.println(sj.getFullStackTrace(e)); } finally { //this.entityManager.close(); } return notificacao; } public void Alterar(Notificacao notificacao){ this.entityManager.getTransaction().begin(); this.entityManager.merge(notificacao); this.entityManager.getTransaction().commit(); //this.entityManager.close(); } @SuppressWarnings("unchecked") public List<Notificacao> Listar(){ return this.entityManager.createQuery("SELECT a FROM Notificacao a ORDER BY a.dtcad").getResultList(); } public Notificacao GetNotificacao(int nrseq) { return this.entityManager.find(Notificacao.class, nrseq); } @SuppressWarnings("unchecked") public long contador(int nrsequsuario) { try { return (long) this.entityManager.createQuery("SELECT COUNT(a) FROM Notificacao a " + "WHERE a.visualizado = false AND a.useralvo.nrseq = :usuario ORDER BY a.dtcad") .setParameter("usuario", nrsequsuario).getSingleResult(); } catch(Exception e) { System.err.println(sj.getFullStackTrace(e)); return 0; } } }
Mensagens: 2
Participantes: 2