1

我有一个与 jUnit 一起使用的第三方库,但没有一次部署到 tomcat。深入研究代码,我可以看到它在这里失败:

final String path = "/api-version.dat";
final InputStream stream = ClassLoader.class.getResourceAsStream(path);

api-version.dat 位于 jUnit 测试中,但在 Tomcat 上执行相同操作会NullPointerException导致 Tomcat 无法获取 api-version 文件。该文件存在并且位于第三方 jar 中。到目前为止我已经尝试过:

  • 检查 jar 是否导入 Tomcat:它在 WEB-INF/lib 中,所以我会说是
  • 创建一个 api-version.dat 文件并将其放在我的资源文件夹中(我使用 maven)。不工作。

有什么想法吗?

4

1 回答 1

1

在 Java EE 环境中使用:

final InputStream stream = Thread.currentThread()
                                 .getContextClassLoader()
                                 .getResourceAsStream(path);

在线程的上下文类加载器和普通类加载器之间的差异中查看更多信息。

于 2013-10-16T15:37:24.323 回答