此规则会标记以以下字符开头的任何字符串文字:
java:/comp
在 Java 文件或 XML 文件中。
此字符串通常表示命名上下文查询。
Java EE 规范将查找字符串定义为
java:comp
没有前置正斜杠 (/)
comp
我不知道
但是, 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"/>