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

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

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

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

Поиск UserTransaction WebLogic
< span class="Code"> < span class="indent"> < /span> < span class= "JavaType">UserTransaction< /span> xact = ctx.lookup("javax.transaction.UserTransaction");
или
< span class="Code"> < span class="indent"> < /span> < span class= "JavaType">UserTransaction< /span> xact = ctx.lookup("weblogic.transaction.UserTransaction");

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

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

< span class="Code"> < span class="indent"> < /span> < span class= "JavaType">UserTransaction< /span> xact = ctx.getUserTransaction();

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

Поиск UserTransaction WebSphere

< span class="Code"> < span class="indent"> < /span> < span class= "JavaType">UserTransaction< /span> xact = ctx.lookup(" java:comp/UserTransaction");