我有一个jar,它获取外部xlsx资源并打开一个带有apachepoi的工作簿
FileInputStream file = new FileInputStream("sheets/template.xlsx");
Workbook workbook = new XSSFWorkbook(file);
当我在本地运行jar时,一切都很顺利,然而,当我在docker中执行jar时,jar在尝试创建工作簿时似乎挂起了,没有抛出异常,什么都没有。
有什么想法吗?我可以提供更多信息。
编辑更多信息:
/sheets/目录位于我的容器的根目录中:
我应该提到的是,如果我在本地机器上运行java-jar app.jar,那么使用以下文件结构,一切都会顺利进行:
.
+-- app.jar
+-- sheets/
+-- template.xlsx
2条答案
按热度按时间disho6za1#
我发现,我的程序内存泄漏,超过了我在本地机器上分配的docker内存。docker不愿在当地告诉我,但heroku让我知道:
ahy6op9u2#
文件的路径在我看来很可疑。”/sheets/template.xlsx“表示您所处环境的根目录,但根据您的输出,您不在容器的根目录中,而是在/usr/src/app中。尝试去掉“/”,使字符串为“sheets/template.xlsx”,或将其更改为目录“/usr/src/app/sheets/template.xlsx”的绝对路径。
在你的盒子里(docker之外),app.jar是否存在于根目录中?如果是这样,那就可以解释一切了。