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ą uzyskać obiekt UserTransaction przy użyciu obiektu EJBContext. getUserTransaction . Inne komponenty aplikacji, takie jak serwlety i komponenty WWW, uzyskają odwołanie za pomocą wyszukiwania JNDI przy użyciu nazwy. java:comp/UserTransaction .

Są oznaczane poniższe typy wyszukiwania.

Wyszukiwanie obiektu UserTransaction produktu WebLogic
< span class="Code"> < span class="indent"> < /span> < span class= "JavaType">UserTransaction< /span> xact = ctx.lookup("javax.transaction.UserTransaction");
lub
< span class="Code"> < span class="indent"> < /span> < span class= "JavaType">UserTransaction< /span> xact = ctx.lookup("weblogic.transaction.UserTransaction");

W przypadku transakcji zarządzanych przez komponent bean wiersz kodu jest zmieniany w celu użycia getUserTransaction .

Wyszukiwanie zarządzane przez komponent bean

< span class="Code"> < span class="indent"> < /span> < span class= "JavaType">UserTransaction< /span> 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

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