WebLogic Server Java 代码复审规则

在“Java 代码复审”规则集下面,WebLogic 至 WebSphere 代码迁移类别包含多个规则。 要了解如何获取有关规则的更多信息,请参阅 显示详细帮助

规则名称 规则描述 自动修复
请勿使用 BEA Beehive @common 注释

此规则检测已迁移 BEA Beehive 文件中发现的 @common Javadoc 标记。

False
请勿使用 BEA Beehive @jpf:action 注释

此规则检测和迁移已迁移 BEA Beehive 文件中发现的 @jpf:action Javadoc 标记。

False
请勿使用 BEA Beehive @jpf:controller 注释

此规则检测和迁移已迁移 BEA Beehive 文件中发现的 @jpf:controller Javadoc 标记。

False
请勿使用 BEA Beehive @jpf:exception-handler 注释

此规则检测和迁移已迁移 BEA Beehive 文件中发现的 @jpf:exception-handler Javadoc 标记。

False
请勿使用 BEA NetUI 软件包

此规则检测和迁移 BEA com.bea.wlw.netui 软件包。

False
检测 Apache Beehive 包

此规则会检测是否使用了 Apache Beehive 包,该包以 org.apache.beehive 开头。

False
请勿将 EJB 类放在缺省 Java 包中 此规则会检测用来定义 EJB(位于缺省 Java 包中)的 Java 类。 WebSphere Application Server 不允许 EJB 存在于缺省 Java 包中。 False
请勿使用 Apache XMLBeans 包

此规则会检测对 Apache XMLBeans 包 org.apache.xmlbeans 的引用。

False
请勿使用 Commons Logging 系统级别属性

此规则会检测通过使用系统属性对 commons logging 实现类进行的设置。

快速修订会移除该条目。

False
请勿使用 JNDI 名称查询来引用运行时 MBean Server

此规则会检测字符串字面值“java:comp/env/jmx/runtime”,WebLogic Server 将该字符串字面值提供为运行时 MBean Server 的 JNDI 名称。 此查询在 WebSphere Application Server 上不起作用。

False
请勿使用非映射 weblogic.apache 包

此规则会检测以下情况下对类的导入和代码引用:类包以 weblogic.apache 开头并且该类未映射至开放式源代码 Apache 类。

必须将代码修改为使用不同类。 请参阅规则帮助,以获取更多信息。

False
请勿将 EntityManager 或 EntityManagerFactory 的子类用于所注入 JPA 元素

此规则会检测所注入 JPA PersistenceContextPeristenceUnit(在这种情况下,可注入类型为 EntityManagerEntityManagerFactory 的子类)。

快速修订会将类更改为使用标准 JPA 对象。

False
请勿使用 WebLogic ApplicationLifecycleListener 接口

此规则会检测用于实现 WebLogic weblogic.application.ApplicationLifecycleListener 接口的类。 建议的迁移替代方法是使用 javax.servlet.ServletContextListener 接口。

False
请勿将 WebLogic 域用于 JMX 对象名

此规则会在 Java 代码中检测以“com.bea”开头的字符串字面值。 该字符串用于引用 WebLogic Server JMX 域并且不能以此方式用于 WebSphere Application Server 中。

False
请勿使用 WebLogic MessageProducer API

此规则会检测是否使用了 weblogic.jms.extensions.WLMessageProducer API。

False
请勿使用 WebLogic ServletAuthentication invalidateAll 方法

此规则会检测是否使用了 weblogic.servlet.security.ServletAuthentication invalidateAll 方法。

False
请勿使用 WebLogic TransactionHelper getUserTransaction 方法

此规则会检测是否使用了 weblogic.transaction.TransactionHelper getUserTransaction 方法。

False
请勿使用来自 CMT Bean 的 UserTransaction 接口

此规则会检测对容器管理的事务企业 bean 内 ctx.lookup('javax.transaction. UserTransaction') 的引用。 不允许从 CMT bean 引用 UserTransaction 对象。

会对这些引用进行标记,以便可移除此 Java EE 违例。

False
请勿使用 weblogic.apache 包

此规则会检测以下情况下对类的导入和代码引用:类包以 weblogic.apache 开头并且该类直接映射至 org.apache 类。

快速修订会将代码更改为 org.apache。 请下载相应 Apache 开放式源代码 .jar 文件,并将它与应用程序包含在一起。

False
请勿使用 WebLogic EJBGEN 注释

此规则会检测 weblogic.ejbgen 包中的 EJBGEN 注释。 在将应用程序部署到 WebSphere Application Server 上之前,必须从应用程序中移除这些注释。

False
请勿使用 WebLogic log4j 记录对象

此规则会检测专有 WebLogic Server log4j 类并将它们标记为要手动迁移。

False
请勿使用 WebLogic LoggingHelper 对象来获取记录器实例

此规则会检测 LoggingHelper 对象的使用。

快速修订会将类实例转换为 Java Logger

False
请勿使用 WebLogic 记录对象

此规则会检测 WebLogic Server 记录对象。

快速修订会将代码更改为使用 Java 对象。

False
请勿使用 WebLogic NonCatalogLogger 对象

此规则会检测 NonCatalogLogger 的使用。

快速修订会将这些对象转换为 Java Logger 对象。 此外,它会将所有记录方法调用转换为有效的记录调用。 级别由使用规则属性的用户控制。

False
请勿使用 WebLogic RMI API 调用

此规则会检测对专有 weblogic.rmi 包的引用的使用。

快速修订会将 weblogic.rmi 更改为 java.rmi 以使用由 Java 提供的类。

False
请勿使用 WebLogic RollbackException 对象

此规则会检测是否使用了 weblogic.transaction.RollbackException 对象并对它进行标记以便手动迁移。

False
请勿将 WebLogic servlet 属性用于 XML 解析

此规则会检测用于解析 XML 的 setAttributegetAttribute 方法(与特定属性配合使用)的使用。

快速修订会移除这些条目。

False
请勿使用 WebLogic ServletAuthentication 类

此规则会检测不能在 WebSphere 中使用的类 weblogic.servlet.security.ServletAuthentication。

False
请勿使用特定于 WebLogic 的 JDBC 属性或扩展

此规则会检测是否使用了必须手动迁移的若干 WebLogic Server JDBC 属性和扩展。

False
请勿将特定于 WebLogic 的 JNDI 环境属性用于初始上下文

此规则会检测用于设置上下文属性的 weblogic.jndi.Environment 类的使用。

快速修订会迁移在对用来初始化 InitialContext 对象的散列表的 Environment 引用中使用的对象。

False
请勿使用特定于 WebLogic 的 JNDI 属性值或 t3 协议

此规则会检测下列专有 JNDI 名称值的使用:

  • java.naming.factory.initial = weblogic.jndi. WLInitialContextFactory
  • java.naming.provider.url = t3://localhost:7001

如果找到这些 JNDI 名称值,那么用户可选择将它们更改为缺省可移植 JNDI 名称值:

  • java.naming.factory.initial = com.ibm.websphere.naming. WsnInitialContextFactory
  • java.naming.provider.url = corbaloc:iiop:localhost:2809
限制: JNDI 名称值必须位于使用 javax.naming. InitialContext(Hashtable) 构造函数初始化上下文的同一 Java 源文件中。
False
请勿使用特定于 WebLogic 的包 此规则会检测以 weblogic 开头的所导入类(但不包括 weblogic.apache 类)。 必须迁移特定于服务器的所标记 API。 False
请勿使用特定于 WebLogic 的 SSL 协议 此规则会检测 Java 文件中字符串字面值“com.certicom.net.ssl”和“weblogic.net”的实例。 False
请勿使用 WebLogic 启动或关闭类

此规则会检测用于实现 WebLogic Server 启动和关闭接口的类。

快速修订会对这些类进行转换,以使用 javax.servlet.ServletContextListener 接口,并且会在应用程序的 web.xml 文件中注册该接口。

False
请勿使用 WebLogic StAX 对象

此规则会检测是否使用了必须手动迁移的 WebLogic Server 专有 XML 流 (StAX) 对象。

False
请勿使用 WebLogic TransactionManager 对象

此规则会检测是否使用了 TransactionManager 对象并对它进行标记以便手动迁移。

False
请勿使用 WebLogic Transaction 对象

此规则会检测是否使用了 Transaction 对象并对它进行标记以便手动迁移。

False
请勿使用 WebLogic TransactionSynchronizationRegistry 对象

此规则会检测是否使用了 TransactionSynchronizationRegistry 对象并对它进行标记以便手动迁移。

False
请勿使用 WebLogic WLLevel 对象

此规则会检测 setLevel() 方法中 WLLevel 对象的使用。

快速修订会将 WLLevel 转换为 IBM WsLevel。 级别由使用规则属性的用户控制。

False
请勿使用 WebLogic XPath 对象

此规则会检测 WebLogic Server 专有 XML XPath 对象的使用并将它们标记为要手动迁移。

False
迁移特定于其他应用程序服务器的 MBean

此规则会检测对 javax.management.ObjectName 构造函数的所有调用,该构造函数可能特定于应用程序服务器并且需要进行迁移以便应用程序能够在 WebSphere Application Server 上运行。

False
使用符合要求的 UserTransaction 查找名称

此规则会检测对 ctx.lookup("javax.transaction. UserTransaction") 的引用。

在 bean 管理的事务 (BMT) bean 内,快速修订会将所标记行转换为 ctx.getUserTransaction()

在 servlet、Web 应用程序和客户机代码内,会将所标记行转换为 JNDI 查询:ctx.lookup("java:comp/UserTransaction")

False
在 EJB Bean 类中使用匹配的 throws 子句

此规则会检测 home 接口和远程接口中的企业 bean 实现与方法定义之间的不匹配之处。

快速修订会添加任何缺少的异常并移除任何其他异常。 不会对这些接口进行更改。

False
使用可移植的 JNDI 名称 此规则会检测是否使用了构造函数 javax.naming.InitialContext(Hashtable)(指定不要将任何专有 WebLogic Server JNDI 名称值置于散列表中)。 False
将 unitName 属性用于所注入 JPA 元素

此规则会检测注入的没有 unitNamename 属性的 JPA PersistenceContextPersistenceUnit 元素。

快速修订会添加这些缺少的值,以提供 WebLogic Server 自动部署的类似行为。

False
验证使用 getRealPath("") 进行并置的结果 在 WebSphere Traditional 中,getRealPath("") 将返回一个以后置斜杠结尾的字符串。 检查使用此方法的并置是否未添加额外斜杠。 False
验证使用 getRealPath("*/") 进行并置的结果 在 Liberty 和 WebSphere Traditional 中,getRealPath("*/") 将返回一个以后置斜杠结尾的字符串。 检查使用此方法的并置是否未添加额外斜杠。 False
WebSphere 中不支持 WebLogic 包和类

此规则会检测是否在 Java 代码和属性文件中使用了 WebLogic 字符串字面值。 将标记包含“weblogic”的所有字符串字面值。 请改用 Java EE 或 WebSphere Application Server 提供的包、类和属性。

False

WebLogic 将 Kodo 用于其 JPA 1.0 提供程序实现。 同样,OpenJPA 是针对 JPA 1.0 和 2.0 的 WebSphere 缺省 JPA 提供程序。 以下规则处理到 JPA 2.0 或更早版本的 WebLogic Server 迁移:

规则名称 规则描述 自动修复
请勿使用没有任何 OpenJPA 等效项的 Kodo API

此规则会检测不具有等价 openJPA 导入的特定 kodo import 语句的使用。

会对这些引用进行标记,以便可对其使用进行评估并手动进行迁移。

False
请勿使用没有任何 openJPA 等效项的 Kodo 属性

此规则会检测 Java 文件中以 kodo.* 开头但没有任何等价 openJPA 值的 JPA 属性。

False
使用 OpenJPA 等效 API 而不是 Kodo API

此规则会检测具有 OpenJPA 等效项的 WebLogic Server 的 kodo import 语句。

快速修订会将它们替换为 openJPA 等价 import 语句。

False
使用 OpenJPA 等效属性名称而不是特定于 Kodo 的属性名称

此规则会检测是否存在名称以 kodo.* 开头的已知 JPA 属性。 在 Java 文件中。

快速修订会将这些属性重命名为 openjpa.*。

False
使用 OpenJPA 属性值而不是特定于 Kodo 的属性值

此规则会检测 Java 文件中具有特定于 kodo 的值的 JPA 属性。

快速修订会将这些值更改为有效的 openJPA 值。

False

从 JPA 2.1 开始,WebSphere 切换至 EclipseLink 作为其缺省 JPA 提供程序。 以下规则处理到 JPA 2.1 或更高版本的 WebLogic Server 迁移:

规则名称 规则描述 自动修复
请勿使用 Kodo API 调用

此规则检测需要迁移到 EclipseLink 的 Kodo API。

会对这些引用进行标记,以便可对其使用进行评估并手动进行迁移。

False
请勿使用 Kodo 属性

此规则检测需要迁移到 EclipseLink 的 Kodo 属性。

False