避免使用无效的初始上下文 java:/comp

此规则会标记 Java 文件或 XML 文件中任何以 java:/comp 开头的字符串字面值。 此字符串通常表示命名上下文查询。 Java EE 规范将查询字符串定义为 java:compcomp 前面不带正斜杠 (/)。 但是,Apache Tomcat 允许使用不兼容的字符串。

在源扫描程序中提供了针对此规则的 Java 快速修订。针对此规则的快速修订会从字符串中移除 /。

例如,请考虑以下包含额外正斜杠的代码段。

private static String final SOME_LOOKUP_NAME = "java:/comp/env/someValue";
String anEnvValue = (String) initialContext.lookup("java:/comp/myEnvString");

该快速修订会移除正斜杠,并将代码更新为:

private static String final SOME_LOOKUP_NAME = "java:comp/env/someValue";
String anEnvValue = (String) initialContext.lookup("java:comp/myEnvString");

如果文件中有字符串的多个实例,那么 XML 规则仅标记该字符串的第一个实例。 在源扫描程序中提供了 XML 快速修订。该 XML 快速修订会更改文件中问题字符串的所有实例。

例如,请考虑以下 XML 代码段。

<PROPERTY key="LookupName" value="java:/comp/env/someValue"/>

该快速修订会移除正斜杠,并将代码更新为:

<PROPERTY key="LookupName" value="java:comp/env/someValue"/>