[英]Load json file from resource
我從資源加載 json 文件時遇到問題。 這是我的代碼:
public void setConfiguration() {
try {
ClassLoader cl = this.getClass().getClassLoader();
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(cl);
Resource[] resources = resolver.getResources("classpath*:/configuration.json");
if (resources.length == 0) {
log.warn("Configuration could not be loaded from file! Using default configuration.");
configuration = getDefaultConfiguration();
}
for (Resource resource: resources){
configuration = new ObjectMapper().readValue(resource.getInputStream(), Configuration.class);
if (configuration != null) {
log.debug("Configuration found (using PathMatchingResourcePatternResolver)");
break;
}
}
} catch (Exception e) {
log.warn("Configuration could not be loaded from file! Using default configuration.", e);
configuration = getDefaultConfiguration();
}
}
它總是采用默認配置。 有誰知道為什么它不從 json 文件中獲取值?
你需要使用:
("classpath:"+this.config.getClassPathRoot() + "/**/*"+jsonFileExtension)
用於獲取資源。
我這也不起作用嘗試通過調用默認構造函數來使用 object: PathMatchingResourcePatternResolver pathResolver = new PathMatchingResourcePatternResolver();
try {
Resource resource = new ClassPathResource("classpath:configuration.json");
InputStream resourceInputStream = resource.getInputStream();
if (resourceInputStream == null) {
log.warn("Configuration could not be loaded from file! Using default configuration.");
configuration = getDefaultConfiguration();
}
else {
configuration = new ObjectMapper().readValue(resourceInputStream, Configuration.class);
if (configuration != null) {
log.debug("Configuration found (using PathMatchingResourcePatternResolver)");
break;
}
}
} catch (Exception e) {
log.warn("Configuration could not be loaded from file! Using default configuration.", e);
configuration = getDefaultConfiguration();
}
如果你的項目是 maven 項目,也許你應該在你的 pom.xml 中添加一些配置。
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.json</include>
</includes>
</resource>
</resources>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.