我有一个与 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)。不起作用。
有什么想法吗?
最佳答案
在 Java EE 环境中使用:
final InputStream stream = Thread.currentThread()
.getContextClassLoader()
.getResourceAsStream(path);
查看更多信息 Difference between thread's context class loader and normal classloader .
关于java - getResourceAsStream 在 jUnit 上工作,但不在 Tomcat 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19407577/