Anotação Asynchronous
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);
}
}
}
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);
}
}
}
Ricardo Pestana
Curtidas 0
Respostas
Ricardo Pestana
07/02/2018
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,
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,
GOSTEI 0