我的项目中有以下课程:
package com.test.schedule.payloads;
import com.google.common.base.Charsets;
import org.apache.commons.io.IOUtils;
import org.apache.log4j.Logger;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* Loads payload from file
*/
public class FilePayload{
private static final Logger LOGGER = Logger.getLogger(FilePayload.class);
private final String filename;
public FilePayload(String filename) {
this.filename = filename;
}
public String getAsString() {
try {
return IOUtils.toString(new InputStreamReader(FilePayload.class.getResourceAsStream(filename), Charsets.UTF_8));
} catch (IOException e) {
LOGGER.error("Error while loading file: '" + filename +'\'', e);
return "";
}
}
}
在我项目的资源目录(maven one)中,我有以下路径的文件:
com/test/schedule/payloads/schedule-payload.xml
当我执行getAsString()时,文件名等于" schedule-payload.xml"在Windows上一切正常。但是当在Linux服务器上执行相同的代码时,它会在getResourceAsStream()上返回null。我不知道如何修复它,因此代码在Windows和Linux上都可以运行。任何帮助都将非常感激。
答案 0 :(得分:1)
检查此文件“com / test / schedule / payloads / schedule-payload.xml”路径上的所有内容是否为小写,因为Linux路径区分大小写且Windows路径不区分大小写。