Использовать совместимое имя для поиска UserTransaction

Это правило отмечает фрагменты кода, которые получают объект UserTransaction, используя поиск по строке javax.transaction.UserTransaction или weblogic.transaction.UserTransaction.

EJB транзакций, управляемых EJB, должны получать объект UserTransaction с помощью метода getUserTransaction из EJBContext. Другие компоненты приложения, такие как сервлеты и веб-компоненты, могут получать ссылку, выполняя поиск JNDI по имени java:comp/UserTransaction.

Отмечаются операции поиска следующих типов.

Поиск UserTransaction WebLogic
UserTransaction xact = ctx.lookup("javax.transaction.UserTransaction");
или
UserTransaction xact = ctx.lookup("weblogic.transaction.UserTransaction");

Для транзакций, управляемых EJB, строка кода меняется так, чтобы использовался метод getUserTransaction.

Поиск транзакции, управляемой EJB

UserTransaction xact = ctx.getUserTransaction();

Для кода элементов, отличных от EJB, (клиентов, веб-компонентов и сервлетов) сканер исходного кода предоставляет быстрое исправление, изменяющее код для использования поиска JNDI по имени java:comp/UserTransaction. Ниже приведет пример того, что получается в результате преобразования кода:

Поиск UserTransaction WebSphere

UserTransaction xact = ctx.lookup("java:comp/UserTransaction");