1.9 KiB
1.9 KiB
EasyExcel 导入模板 Fontconfig 异常修复实施记录
保存路径确认
- 文档类型:实施记录
- 保存路径:
docs/reports/implementation/
问题说明
- 请求地址:
/ccdi/baseStaff/importTemplate - 异常信息:
java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration - 触发链路:员工信息维护导入模板下载使用
EasyExcelUtil.importTemplateWithDictDropdown生成双 Sheet 模板,EasyExcel 默认创建SXSSFWorkbook,在无可用字体配置的服务器环境中创建 Sheet 时会触发 POI/AWT 字体配置初始化异常。
修改内容
- 修改
ccdi-info-collection/src/main/java/com/ruoyi/info/collection/utils/EasyExcelUtil.java - 将导入模板下载相关写出入口统一改为
inMemory(Boolean.TRUE):- 单 Sheet 普通模板
- 单 Sheet 带字典下拉模板
- 指定文件名的带字典下拉模板
- 双 Sheet 带字典下拉模板
- 普通数据导出入口保持流式写出,不改变大数据导出的内存特性。
影响范围
- 修复员工信息维护
/ccdi/baseStaff/importTemplate模板下载。 - 同步覆盖复用同一工具方法的其他导入模板下载接口。
- 不改变导入解析逻辑、模板表头、字典下拉、必填标记和文本格式处理逻辑。
验证记录
- 已执行:
mvn -pl ccdi-info-collection -am -Dtest=EasyExcelUtilTemplateTest -Dsurefire.failIfNoSpecifiedTests=false test- 结果:失败,失败原因是本机 JDK 21 下 Mockito inline 自附加失败,错误为
Could not self-attach to current VM,未进入模板业务断言。
- 结果:失败,失败原因是本机 JDK 21 下 Mockito inline 自附加失败,错误为
- 已执行:
mvn -pl ccdi-info-collection -am -Dtest=EasyExcelUtilTemplateTest -Dsurefire.failIfNoSpecifiedTests=false -DargLine=-javaagent:/Users/wkc/.m2/repository/net/bytebuddy/byte-buddy-agent/1.17.8/byte-buddy-agent-1.17.8.jar test- 结果:通过,
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0。
- 结果:通过,