Precisei implementar esta classe só que gera um erro “javax.ejb.EJBException: The bean encountered a non-application exception; nested exception is:
java.lang.NullPointerException”
Acredito que o erro acontece no metodo criaPessoa no momento em que chama pessoaBean.inserirPessoa§;
Porem o pessoaBean está ok.
package br.com.rightway.treinamento.ejb;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Local;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import br.com.rightway.treinamento.model.Contato;
import br.com.rightway.treinamento.model.Mensagem;
import br.com.rightway.treinamento.model.Pessoa;
import br.com.rightway.treinamento.model.Prioridade;
import br.com.rightway.treinamento.model.Tipo;
@Stateless
@Local(MensagemBeanLocal.class)
@Remote(MensagemBeanRemote.class)
//Inicia a transação
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public class MensagemBean implements MensagemBeanLocal
{
@PersistenceContext(unitName=“bean”)
private EntityManager em;
@EJB
private PessoaBean pessoaBean;
@EJB
private ContatoBean contatoBean;
private List<Contato> lista = new ArrayList<Contato>();
public Pessoa criaPessoa(Pessoa p ,Contato c)
{
c.setFormaContato(“Carta”);
c.setPrioridade(Prioridade.baixa);
c.setTipo(Tipo.postal);
//List<Contato> lista = new ArrayList<Contato>();
lista.add(c);
p.setContatos(lista);
c.setPessoa(p);
// p.setId(1l);
p.setCpf(12734789752l);
if(lista != null)
{
pessoaBean.inserirPessoa(p);
contatoBean.inserirContato(c);
}
else
{
System.out.println("É obrigatório ao menos 1 contato para pessoa!");
}
return p;
}
Aparece este alerta no final:
WARN - Injection data not found in JNDI context: jndiName=‘br.com.rightway.treinamento.ejb.MensagemBean/pessoaBean’, target=br.com.rightway.treinamento.ejb.MensagemBean/pessoaBean
Alguém consegue me ajudar?