Używaj zgodnej nazwy wyszukiwania obiektu UserTransaction

Ta reguła oznacza kod, który pobiera obiekt UserTransaction za pomocą łańcucha wyszukiwania javax.transaction.UserTransaction lub weblogic.transaction.UserTransaction.

Komponenty bean transakcji zarządzanych przez komponent bean muszą uzyskiwać obiekt UserTransaction przy użyciu metody getUserTransaction interfejsu EJBContext. Inne komponenty aplikacji, takie jak serwlety i komponenty WWW, uzyskują odwołanie za pomocą wyszukiwania JNDI przy użyciu nazwy java:comp/UserTransaction.

Są oznaczane poniższe typy wyszukiwania.

Wyszukiwanie obiektu UserTransaction produktu WebLogic
UserTransaction xact = ctx.lookup("javax.transaction.UserTransaction");
lub
UserTransaction xact = ctx.lookup("weblogic.transaction.UserTransaction");

W przypadku transakcji zarządzanych przez komponent bean wiersz kodu jest zmieniany pod kątem użycia metody getUserTransaction.

Wyszukiwanie zarządzane przez komponent bean

UserTransaction xact = ctx.getUserTransaction();

W przypadku kodu używającego komponentów bean innych niż EJB (klienty aplikacji, komponenty WWW i serwlety) skaner kodu źródłowego udostępnia szybką poprawkę, która zmienia kod pod kątem użycia wyszukiwania JNDI za pomocą nazwy java:comp/UserTransaction. Wynik jest podobny do poniższego przykładu:

Wyszukiwanie obiektu UserTransaction produktu WebSphere

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