在我的多模块maven项目中,learning_jaxrs(父项目)
commonapi模块(包装jar)包含src / main / resources中的资源,我正在使用我的下面的util类读取文件
public class FileUtils {
private static final ClassLoader CLASS_LOADER = FileUtils.class.getClassLoader();
/**
* @param fileName
* @return
* @throws IOException
*/
public static String readFileAsString(String fileName) throws IOException {
String result = null;
result = new String(readAllBytes(getFilePath(fileName)),StandardCharsets.UTF_8);
return result;
}
/**
* It will return fully qualified path of resource file name
*
* @param fileName
* @return
*/
public static Path getFilePath(String fileName) {
Path result = null;
URL resource = CLASS_LOADER.getResource(fileName);
if (resource != null) {
result = get(resource.getFile());
}
return result;
}
}
阅读文件
String jsonTestData = readFileAsString("testEmployees.json");
当我运行commonapi模块的本地测试时,一切正常。
但是当我在我的服务器上部署httpmethods模块(war)时它无法正常工作,我正在跟踪异常......
java.nio.file.NoSuchFileException: /content/httpmethods-1.0.war/WEB-INF/lib/commonapi-1.0.jar/testEmployees.json
httpmethods war archive在web-inf / lib中包含commonapi jar,而且常见的api jar也包含文件
编辑:
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
解决了问题