Amigos,
Estou desenvolvendo uma aplicação que usa JSF+EJB+CDI com MYSQL rodando no Wildfly 10. Tenho um Bean stateless que possui um método de inclusão de registros em uma tabela. Deixei a responsabilidade do controle de transação com o container e fiz um pequeno código para testar o seu funcionamento e verificar se o esquema de transação está funcionando corretamente. De acordo com o código abaixo (é apenas um resumo da classe) uma exceção seria lançada e posteriormente um rollback seria executado. Acontece que o registro continua na base de dados.
@Resource
private EJBContext context;
public void salvar(Perfil p) {
try
{
em.persist§;
int i = Integer.parseInt(“teste”);
}
catch(Exception e)
{
e.printStackTrace();
context.setRollbackOnly();
}