【问题标题】:How to access static resources(WEB-INF) folder from and write tests for it如何从中访问静态资源(WEB-INF)文件夹并为其编写测试
【发布时间】:2014-01-27 15:57:10
【问题描述】:

我需要在启动服务器时加载文件资源。 所以我把文件放在 webapp/WEB-INF 下。

问题在于单元测试失败。

我尝试使用以下方式加载文件:

URL url = Utils.class.getClassLoader().getResource(fileName);
File file = new File(url.getFile());
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));

但是类加载器没有找到该文件。它似乎正在寻找它

file:/C:/<local path>/<my project>/target/test-classes/
  • 正常模式和测试模式有不同的上下文

我也尝试了here 建议的解决方案,但没有奏效

【问题讨论】:

  • 文件是否必须存在于 WEB-INF 中?或者它可以存在于 WEB-INF/classes 中吗?

标签: spring junit resources web-inf


【解决方案1】:

在 tomcat 中如何覆盖和解析类路径是一个相对复杂的过程,但简单的答案是 WEB-INF 不是类路径的一部分,因此您无法从您的 web 应用程序访问它像那样。 WEB-INF/classes 是您可以从中读取文件的地方。

您可能想通读this q/a,它应该会为您提供所有潜在的解决方案

【讨论】:

    猜你喜欢
    • 2012-05-25
    • 1970-01-01
    • 2013-04-24
    • 1970-01-01
    • 2023-03-19
    • 2015-07-29
    • 2014-06-05
    • 2015-07-08
    • 1970-01-01
    相关资源
    最近更新 更多