docker使用openJDK导致Excel导出问题

简介: docker使用openJDK导致Excel导出问题

问题:本地环境导出Excel正常,测试环境导出Excel失败

image.png
看到上方报错日志开始以为是初始化WorkBook失败导致的空指针问题
image.png
后来打印了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
相关文章
|
2月前
|
关系型数据库 MySQL Shell
不通过navicat工具怎么把查询数据导出到excel表中
不通过navicat工具怎么把查询数据导出到excel表中
32 0
|
6天前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
15天前
|
存储 Java
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
34 2
|
2月前
|
前端开发 JavaScript
使用Vue+xlsx+xlsx-style实现导出自定义样式的Excel文件
本文介绍了在Vue项目中使用`xlsx`和`xlsx-style`(或`xlsx-style-vite`)库实现导出具有自定义样式的Excel文件的方法,并提供了详细的示例代码和操作效果截图。
337 1
使用Vue+xlsx+xlsx-style实现导出自定义样式的Excel文件
|
2月前
|
前端开发 Python
使用Python+openpyxl实现导出自定义样式的Excel文件
本文介绍了如何使用Python的openpyxl库导出具有自定义样式的Excel文件,包括设置字体、对齐方式、行列宽高、边框和填充等样式,并提供了完整的示例代码和运行效果截图。
40 1
使用Python+openpyxl实现导出自定义样式的Excel文件
|
2月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何直接导出excel文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2月前
|
JavaScript 前端开发 easyexcel
基于SpringBoot + EasyExcel + Vue + Blob实现导出Excel文件的前后端完整过程
本文展示了基于SpringBoot + EasyExcel + Vue + Blob实现导出Excel文件的完整过程,包括后端使用EasyExcel生成Excel文件流,前端通过Blob对象接收并触发下载的操作步骤和代码示例。
229 0
基于SpringBoot + EasyExcel + Vue + Blob实现导出Excel文件的前后端完整过程
|
2月前
|
数据管理 数据处理 数据库
分享一个导出数据到 Excel 的解决方案
分享一个导出数据到 Excel 的解决方案
|
2月前
|
SQL
SQL SERVER 查询表结构,导出到Excel 生成代码用
SQL SERVER 查询表结构,导出到Excel 生成代码用
33 0
|
3月前
|
Java 数据安全/隐私保护
Java无模版导出Excel 0基础教程
经常写数据导出到EXCEL,没有模板的情况下使用POI技术。以此作为记录,以后方便使用。 2 工具类 样式工具: 处理工具Java接口 水印工具 导出Excel工具类 3 测试代码 与实际复杂业务不同 在此我们只做模拟 Controller Service 4 导出测试 使用Postman进行接口测试,没接触过Postman的小伙伴可以看我这篇博客Postman导出excel文件保存为文件可以看到导出很成功,包括水印 sheet页名称自适应宽度。还有一些高亮……等功能可以直接搜索使用
Java无模版导出Excel 0基础教程
下一篇
无影云桌面