A especificação Java EE indica que os beans de transação gerenciada por contêiner (CMT) podem não acessar o objeto UserTransaction. Todavia, o WebLogic suporta a consulta UserTransaction.
Esta regrasinaliza o tipo de código a seguir:
Consulta de UserTransaction do WebLogic|
UserTransaction xact = ctx.lookup("javax.transaction.UserTransaction"); ou
UserTransaction xact = ctx.lookup("weblogic.transaction.UserTransaction"); |
O acesso ao UserTransaction não é permitido no bean em que ele está sendo sinalizado. Sua solução depende do que o código está tentando fazer com a UserTransaction. Examine o uso de UserTransaction para determinar como o código deve ser alterado ou se a referência pode ser removida.
Alternativas à UserTransaction incluem o UOWManager. A consulta para esse gerenciador também utiliza uma consulta da JNDI como, por exemplo:
Consulta do UOWManager|
UOWManager uowMgr = ctx.lookup("java:comp/websphere/UOWManager"); |
Outra abordagem pode ser utilizar a interface SessionSynchronization, que lhe dá acesso aos métodos afterBegin, beforeCompletion e afterCompletion. O método beforeCompletion lhe oferece uma oportunidade de reverter para a versão anterior da transação, no caso de um erro.