不要使用 WebLogic TransactionSynchronizationRegistry 物件

此規則會偵測是否在 Java 檔中使用 TransactionSynchronizationRegistry 物件。 檢閱 WebSphere Application Server 說明文件中的 JTA 支援主題。

會偵測到下列情況:

  1. 欄位宣告,物件層次範例:
    private TransactionSynchronizationRegistry reg ;

  2. 方法變數範例:
    private void doX(){  TransactionSynchronizationRegistry reg;
    }

  3. 字串文字用法範例: String s = "java:comp/TransactionSynchronizationRegistry";
    或 String s = "javax/transaction/TransactionSynchronizationRegistry";
    或 String s = "weblogic/transaction/TransactionSynchronizationRegistry";
    或 TransactionManager mgr = ctx.lookup("java:comp/TransactionSynchronizationRegistry")
    或 TransactionManager mgr = ctx.lookup("javax/transaction/TransactionSynchronizationRegistry")
    或 TransactionManager mgr = ctx.lookup("weblogic/transaction/TransactionSynchronizationRegistry")

如果將物件用作完整名稱(例如,javax.transaction.TransactionSynchronizationRegistry),則可以偵測到該物件。

如果存在下列任一 import 陳述式,則將物件用作簡稱(例如,TransactionSynchronizationRegistry)時,也會偵測到該物件:
import javax.transaction.*;

import javax.transaction.TransactionSynchronizationRegistry;