getResourceAsStream在jUnit上工作,但不在Tomcat上工作

时间:2013-10-16 15:30:26

标签: java tomcat junit

我有一个与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)。不起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在Java EE环境中使用:

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

Difference between thread's context class loader and normal classloader中查看更多内容。