Eu tenho um método que está com transação required. Executo o cadastro no banco de dados e após esse cadastro, eu quero enviar um webservice para um cliente.
No entanto, suponhamos que eu esqueci de colocar um max-length no input de um campo descrição. O usuário digitou 500 caracteres e no banco o tamanho está com 400.
Após o uso desse método, o ejb vai confirmar a transação somente no final do método, e quando tentar confirmar o banco vai retornar uma exceção por não conseguir cadastrar a mensagem e mesmo assim o webservice já foi enviado, pois não tinha ciência que a transação seria cancelada.
Eu já tentei montar assim.(Pseudocódigo)
NOT_SUPPORTED
meuPrimeiroMetodo(){
meuMetodoComTransacaoCadastraNoBanco();
meuMetodoWebService():
}
REQUIRED
meuMetodoComTransacaoCadastraNoBanco(){
}
NOT_SUPPORTED
meuMetodoWebService(){
}
No entanto, não funciona como esperado.
Como eu resolveria essa situação?