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

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

自动修复该规则时,将删除字符串中的 /。

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

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 代码段。

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

自动修复将删除正斜线,并将代码更新为

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