如何从模块jar文件中读取资源

时间:2014-05-25 19:21:09

标签: java maven java-ee resources

在我的多模块maven项目中,learning_jaxrs(父项目)

enter image description here

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也包含文件

enter image description here enter image description here

编辑:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();

解决了问题

0 个答案:

没有答案