Oi Pessoal,
Estou com o seguinte problema, tenho um stateless session bean que realiza várias chamadas de
pesquisa no entity manager para depois poder realizar a inclusão de uma pessoa e após essa
inclusão, criar um usuário para essa pessoa incluída.
someMethod(Object obj) {
//1 - verificar se esse obj jah existe (Isso eh feito em um método privado)
someDAO.obter(obj.getParam());
//2 - Realiza outra busca (Isso é feito em um outro método privado)
someDAO.obter2(obj.getParam2());
//3 - Realiza inclusao
someDAO.incluir(obj);
//4 - criar usuario com login e senha para esse obj
otherStatelessSessionBean.criarUsuarioSenha(obj);
}
Porém, quando eu chego na linha que tem o 2 comentário, é lancado uma excessao, dizendo que minha transacao nao está ativa:
22:20:42,581 INFO [STDOUT] WARN logExceptions, SQL Error: 0, SQLState: null
22:20:42,582 INFO [STDOUT] ERROR logExceptions, Transaction is not active: tx=TransactionImple < ac, BasicAction: 7f000101:d910:49066334:66 status: ActionStatus.ABORT_ONLY >; - nested throwable: (javax.resource.ResourceException: Transaction is not active: tx=TransactionImple < ac, BasicAction: 7f000101:d910:49066334:66 status: ActionStatus.ABORT_ONLY >)
22:20:42,586 ERROR [STDERR] javax.ejb.EJBTransactionRolledbackException: org.hibernate.exception.GenericJDBCException: Cannot open connection
Quando eu coloco a linha no comentário 2 como um método público no stateless session bean, e declaro o tipo de transacao desse método
como NotSupported, o codigo passa da linha 2, realiza a inclusao, mas qndo vai tentar realizar o passo 4, eh lancado uma
excecao dizendo que nao foi encontrado uma chave primaria do obj, que eh utilizada na criacao do usuario.
Para isso funcionar, eu removi o passo 4 desse metodo, e chamo o mesmo logo em seguida a excucao do codigo acima, no cliente.
Alguém passou por esse problema e poderia me dar uma ajuda?
abraco…
Alguem pode me explicar o que estah ocorrendo?