JAR在本地工作,但在Docker容器(Apache-POI)中挂起失败
我有一个JAR获取外部XLSX资源,并使用Apache-POI打开工作簿
FileInputStream file = new FileInputStream("sheets/template.xlsx"); Workbook workbook = new XSSFWorkbook(file);
当我在本地运行JAR时,一切正常,但是,当我在Docker中执行JAR时,JAR在尝试创build工作簿时似乎挂起,没有任何exception抛出。
有任何想法吗? 我可以提供更多的信息。
编辑更多信息:
/ sheets /目录存在于我的容器的根目录中:
我应该提到的是,如果我在本地机器上运行java -jar app.jar,那么以下文件结构一切正常:
. +-- app.jar +-- sheets/ +-- template.xlsx
文件的path对我来说似乎很诡异。 “/sheets/template.xlsx”意味着你所在环境的根,但根据你的输出,你不在容器的根目录下,而是在/ usr / src / app中。 尝试取出“/”,使string为“sheets / template.xlsx”,或将其更改为目录“/usr/src/app/sheets/template.xlsx”的绝对path。
在你的盒子(docker外)app.jar是否存在于根目录下? 如果这样就能解释一切。
发现,在我的程序中有一个内存泄漏,它超过了我在本地机器上分配的docker的内存。 Docker不会在本地告诉我,但Heroku让我知道: