由于项目最近新加了发送excel报表的功能,原先的dockerfile基础镜像openjdk:8-slim 中不包含excel相关的字体,当生成报表时,导致报表无内容。
问题
java.lang.RuntimeException: Excel export error: java.lang.UnsatisfiedLinkError: /usr/local/openjdk-8/jre/lib/amd64/libfontmanager.so: libfreetype.so.6: cannot open shared object file: No such file or directory
方法
直接替换DockerFile中的基础镜像源:FROM frolvlad/alpine-java:jdk8-slim
原因
poi中导出excel时会根据字体大小调整列宽,本地开发时使用的时oracl的jdk8,所以没问题,但是部署到线上后打包的docker使用的open-jdk8-slim镜像源,此版本早已去除了libfontmanager字体的支持,需要我们自行下载,所以会导致导出时找不到字体管理器报错!