java - Spring:如何在服务层访问webapp/resources的内容

标签 java spring

如何从服务层访问我的 webapp/resources 文件夹的内容?我需要访问一个用于 Elasticsearch 映射的 JSON 文件...

我的项目结构是这样的: https://www.dropbox.com/s/crdzae1ko0x9p89/Screenshot%202015-05-25%2010.24.12.png?dl=0

我试过这个: http://www.mkyong.com/java/java-read-a-file-from-resources-folder/

String mapping = String.format("es_mappings/%s.json", type);
        ClassLoader classLoader = getClass().getClassLoader();
        String result = IOUtils.toString(classLoader.getResourceAsStream(mapping));

但是我在上面的代码片段的第三行得到了一个空指针异常。

也试过这个:

File file = ResourceUtils.getFile("classpath:es_mappings/bom_exports.json")
String txt= FileUtils.readFileToString(file);

但我收到此错误:java.io.FileNotFoundException:类路径资源 [es_mappings/bom_exports.json] 无法解析为绝对文件路径,因为它不在文件系统中。

我的 -servlet.xml 文件中有这个:

<mvc:resources location="/resources/" mapping="/resources/**"/>

谢谢。

最佳答案

我使用这段代码。它简单且有效。

import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;

// ...

@Value("/resources/json/your_file.json")
private Resource jsonResource;

// ...

InputStream jsonStream = jsonResource.getInputStream();

现在可以使用stream读取json了。

关于java - Spring:如何在服务层访问webapp/resources的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30431025/

相关文章:

java - @ControllerAdvice不处理异常

java - Android - ListView

java - 基于 Java 中的类的数组中增强的 FoR 循环

java - 无法从 Tomcat 网络服务器打开生成的 .mht 文件

java - 是否存在基于 AspectJ 的分析器包?

java - 仅当查询未找到任何结果时才出现错误 java.lang.ClassNotFoundException : org. springframework.orm.jpa.EntityManagerFactoryUtils

java - 尝试在 Android 中将文件写入 sdcard 时出现 FileNotFoundException(权限被拒绝)

spring - 有没有办法在另一个项目中重用来自多个项目的 cucumber 步骤?

java - JDBC 模拟 KeyHolder

java - Spring Boot - Spring security @ComponentScan 或 @Import