getResource returns 在一台服务器上为空,但在另一台服务器上没有

getResource returns null on one server but not on the other

I 运行 2 tomcat 个实例在两个不同的服务器上。我在两者上部署了相同的 war 文件,但它的工作方式不同。

在实例一上一切正常,而在实例二上我得到一个 NullPointerException,因为 "listAllConfigIds" 方法中的变量 "resource" 为 NULL。

public List<String> listAllConfigIds() {
    URL resource = SomeClass.class.getResource("./");
    LOG.debug("Loading from resource " + resource);
    return Arrays.asList(new File(resource.getPath()).list()).stream().filter(s -> !s.toLowerCase().contains("."))
        .collect(Collectors.toList());
}

我在 AIX 上使用相同的虚拟机参数启动 tomcat。知道问题出在哪里吗?

我现在构建的是绝对路径,而不是相对路径:

SomeClass.class.getName().substring(0, SomeClass.class.getName().lastIndexOf(".")).replace(".", "/");

删除最后一部分并替换“.”用“/”