Quantcast
Channel: GUJ - Tópicos com a tag hibernate
Viewing all articles
Browse latest Browse all 759

Porque @EJB está nullo ?

$
0
0

@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/NotificacaoDAOEJB

10: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/NotificacaoControladorEJB

Controller

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

Ler tópico completo


Viewing all articles
Browse latest Browse all 759


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>