解决EasyExcel或POI在线下使用正常,线上环境Docker出现IllegalArgumentE异常的情况

解决EasyExcel或POI在线下使用正常,线上环境Docker出现IllegalArgumentE异常的情况

easyExcel线下环境写入Sheet正常,但是丢到线上Docker环境中无法写入,发生写入Sheet异常。

该异常由于自己的环境变量缺少swing需要的字体配置。

  1. 该异常由于自己的环境变量缺少swing需要的字体配置,检查自己应用是否有配置-Djava.awt.headless=true,如果没有请加上该系统参数
  2. 如果仍旧不行,看下服务器是否安装了字体,jdk8字体需要自己安装请安装字体:dejavu-sans-fonts 和 fontconfig 在dockerfile中增加字体安装命令:RUN yum install dejavu-sans-fonts fontconfig -y

在Docker中的解决方案

由于Docker容器特性,导致无法安装或者copy后字体不生效的情况,所以我们需要使用以下方法进行解决

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#1.jdk8环境
FROM openjdk:8-jdk-alpine
#2.维护者
MAINTAINER zcn
#3 设置docker源 为阿里镜像
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
#4 通过上一步安装字体
RUN set -xe \
&& apk --no-cache add ttf-dejavu fontconfig
#3.挂载目录
VOLUME /tmp
#4.部署项目的绝对路径
ADD target/enrollment.jar enrollment.jar
#5.对外开放端口
EXPOSE 15000
#6.运行项目
ENTRYPOINT ["java","-jar","-XX:+UnlockExperimentalVMOptions","-XX:+UseCGroupMemoryLimitForHeap","-Duser.timezone=GMT+08","/enrollment.jar"]
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

扫一扫,分享到微信

微信分享二维码

请我喝杯咖啡吧~

支付宝
微信