Problema com Método Anotado com @Asyncronous

1 resposta
R

Tenho um método anotado como assíncrono em uma classe, e acontece que quando chamo um método para ler um xml e persistir os dados (meu.testar(lote)), dá o erro: “by: javax.ejb.EJBException: javax.ejb.EJBException: javax.ejb.CreateException: Could not create stateless EJB”.

E se eu tirar a anotação " @Asynchronous" do método, o programa funciona…

Alguém tem idéia do que pode estar ocorrendo???

@Stateless

public class IntegraDoctos {

@EJB

LoteDao daoLote;

@EJB
MeuEJB meu;

@Asynchronous
public void processar(String[] lotes) throws MessagingException, UnsupportedEncodingException {

for (String l : lotes) {

Mnlote lote = daoLote.findById(Integer.parseInt(l));

meu.testar(lote);

}

}

}

1 Resposta

R

Bom dia,

Descobri o que ocasionava o erro, estava usando um producer para obter/fornecer o entityManager dentro do EJB (MeuEJB).

Alterei para ao invés de injetar o producer (@Inject), usar a anotação @PersistenceContext e a rotina funcionou perfeitamente.

Só gostaria de entender o motivo, ou pelo menos o se realmente eu não posso usar o producer com EJB… alguém sabe?

abraço,

Criado 7 de fevereiro de 2018
Ultima resposta 8 de fev. de 2018
Respostas 1
Participantes 1