请勿使用 WebLogic TransactionManager 对象

此规则会检测是否使用了 TranasctionManager Java 文件中的对象。 查看 WebSphere Application Server 文档中的 JTA 支持主题。

会检测到下列情况:

  1. 字段声明(对象级别)
    示例: private TransactionManager tmgr ;

  2. 方法变量示例:
    private void doX(){
        TransactionManager tmgr;
    }

  3. 强制类型转换表达式示例:
    TransactionManager t = (TransactionManager) someOtherObject;

  4. 字符串字面值使用示例:
    String s = "weblogic.transaction.TransactionManager";
    String s = "weblogic.transaction.TransactionManager";
    TransactionManager mgr = ctx.lookup("weblogic.transaction.TransactionManager")
    TransactionManager mgr = ctx.lookup("javax.transaction.TransactionManager")

  5. 方法调用示例:
    TransactionManager t = TransactionHelper.getTransactionManager();
    TransactionManager t = TxHelper.getTransactionManager();

如果将该对象用作限定名,那么可以检测该对象,例如 weblogic.transaction.TransactionManager javax.transaction.TransactionManager .

还可检测对象用作简单名称,例如 Transaction ,如果存在以下任一 import 语句:
import weblogic.transaction.*;

import weblogic.transaction.TransactionManager;

import javax.transaction.*;

import javax.transaction.TransactionManager;