Согласно спецификации Java EE, EJB управляемых контейнером транзакций (CMT) не могут обращаться к объекту UserTransaction. Однако WebLogic поддерживает поиск UserTransaction.
Данное правило отмечает фрагменты кода следующего типа:
WebLogic UserTransaction Lookup
UserTransaction xact = ctx.lookup ( "weblogic.transaction.UserTransaction" );
В EJB с отмеченным кодом нельзя обращаться к UserTransaction. Решение зависит от того, какая операция с UserTransaction выполняется в коде. Изучите, для чего используется UserTransaction, и измените код соответствующим образом или удалите ссылку.
Вместо UserTransaction можно использовать UOWManager. При обращении к этому объекту также используется операция поиска JNDI, например:
Поиск UOWManagerДругой альтернативой может стать использование интерфейса SessionSynchronization, открывающего доступ к методам afterBegin, beforeCompletion и afterCompletion. Метод beforeCompletion позволяет вернуться к предыдущей версии транзакции в случае ошибки.