我的战争中有一个json文件位于以下位置
WEB-INF/classes/META-INF/jsonFolder/file.json
我正在尝试使用路径和以下方法来加载文件。
public static File deserializeJSONFile() throws IOException {
File file = null;
OutputStream outStream = null;
String jsonPath = "jsonFolder/file.json";
try (InputStream inputStream = Thread.currentThread().getContextClassLoader()
.getResourceAsStream(jsonPath)) {
in = inputStream;
if (in != null) {
byte[] bufferArray = new byte[in.available()];
in.read(bufferArray);
file = new File("tempJsonFile.json");
outStream = new FileOutputStream(file);
outStream.write(bufferArray);
}
} finally {
if (outStream != null) {
outStream.close();
}
}
if (null == in) {
String errorMessage = "JSON file: " + jsonPath + " could not be loaded";
FileNotFoundException fileNotFoundException = new FileNotFoundException(errorMessage);
logger.error(errorMessage, fileNotFoundException);
throw fileNotFoundException;
}
return file ;
}
我所有的单元测试都通过了。在部署我的应用程序时,我看到jsonFolder / file.json找不到文件异常。当我跟踪它正在搜索的位置时,它正在查看,
C:\Program Files\eclipse-mars\jsonFolder\file.json
这是不正确的。我尝试了不同的类加载器方法,但它没有帮助。一条规则是我不应该修改pom.xml来使其工作。我该如何加载文件?
答案 0 :(得分:0)
我的战争中有一个json文件位于以下位置
WEB-INF->类 - > META-INF-> jsonFolder-> file.json
因此它作为资源的名称是This is fixed now and should be in 1.0.2 - https://github.com/sbt/sbt/pull/3507/commits/b6a3ca19373c2ffa17c5660fa74a9a4204948b6e
You can type stty echo to restore window or use - https://github.com/paulp/sbt-extras
。不是你的代码中的内容。