Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何访问存储在';src/main/resources/someFolder';在Docker容器中?_Java_Json_Docker_Gradle_Cloudant - Fatal编程技术网

Java 如何访问存储在';src/main/resources/someFolder';在Docker容器中?

Java 如何访问存储在';src/main/resources/someFolder';在Docker容器中?,java,json,docker,gradle,cloudant,Java,Json,Docker,Gradle,Cloudant,我正在开发一个基于gradle的服务,它应该在kubernetes集群中的docker容器中运行。在本地,我可以访问资源,一些用于CouchDb初始化的json文件。一旦我在Docker中构建和部署了服务,这些文件就不再可访问,并且我得到了“未找到文件”异常,无法启动服务。我可以看到我的文件夹在生成的jar中,但我无法访问这些文件。 我使用它的方式如下: DesignDocument design=DesignDocumentManager.fromFile(“design documents/

我正在开发一个基于gradle的服务,它应该在kubernetes集群中的docker容器中运行。在本地,我可以访问资源,一些用于CouchDb初始化的json文件。一旦我在Docker中构建和部署了服务,这些文件就不再可访问,并且我得到了“未找到文件”异常,无法启动服务。我可以看到我的文件夹在生成的jar中,但我无法访问这些文件。 我使用它的方式如下:

DesignDocument design=DesignDocumentManager.fromFile(“design documents/documents.json”)


它来自于。我尝试了路径的不同版本,即使用前导斜杠或项目的绝对路径。

API没有文件的替代品,该文件是操作系统文件。 所以使用一个临时文件

InputStream in = getClass().getResourceAsStream(
        "/design-documents/documents.json");
Path tempPath = Files.createTempFile("desdoc-", ".json");
Files.copy(in, tempPath);
DesignDocument design = DesignDocumentManager.fromFile(tempPath.toFile());
Files.delete(tempPath);

请注意Class.getResource(AsStream)的前面的
/

请分享您迄今为止所做的尝试,这对我很有用,但我们决定使用另一个选项,即使用Dockerfile中的copy将资源文件复制到容器中。