问题:本地环境导出Excel正常,测试环境导出Excel失败
看到上方报错日志开始以为是初始化WorkBook失败导致的空指针问题
后来打印了WorkBook对象发现并不是这个原因导致的空指针
解决办法
经排查发现开发项目的时候都是基于OracleJDK 1.8来做的,FontConfig组件可以正常运行。但是发布到docker更换成OpenJDK1.8后,无法正常运行,后台代码抛出异常
后在DockerFile文件中加入如下命令,在容器中安装相关模块解决问题。
RUN apk add --update font-adobe-100dpi ttf-dejavu fontconfig
调整前:
VOLUME ["/data/properties"]
ARG JAR_FILE=pay-service-main/target/xxx.jar
COPY ${JAR_FILE} xxx.jar
ENTRYPOINT ["java","-jar","/xxx.jar"]
调整后:
VOLUME ["/data/properties"]
ARG JAR_FILE=pay-service-main/target/xxx.jar
COPY ${JAR_FILE} xxx.jar
#font-adobe-100dpi:字体
#ttf-dejavu:也是一款开源字体
#这几个组件下载都极慢,建议在基础镜像里面添加不然每次重新下载严重影响打包速度。。。
RUN apk add --update font-adobe-100dpi ttf-dejavu fontconfig
ENTRYPOINT ["java","-jar","/xxx.jar"]
扩展
如果没有使用docker导致的这个报错则需要在宿主机(centOS7)下执行如下命令安装FontConfig组件。
yum install fontconfig
fc-cache --force