使用easyExcel上传至Linux服务器出现空指针
2021/11/23 7:14:22
本文主要是介绍使用easyExcel上传至Linux服务器出现空指针,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.首先是报错截图
2。代码内容
public String writeExcel(String updateTime) { // 获取文件生成路径 String fileName = PATH + "/staff-vacation" + updateTime + ".xlsx"; List<DataDTO> dataDTOS = null; try { dataDTOS = users.selectAll(updateTime); for (DataDTO dataDTO : dataDTOS) { if(null== dataDTO.getOpenid()||""== dataDTO.getOpenid()){ dataDTO.setOpenid("*"); } if(null== dataDTO.getDeleted()||""== dataDTO.getDeleted()){ dataDTO.setDeleted("0"); } if(null== dataDTO.getUpdateUser()||""== dataDTO.getUpdateUser()){ dataDTO.setUpdateUser("*"); } } } catch (Exception e) { log.error("文件转换异常", e); } log.info("文件存储路径:============="+fileName); // 把数据库的数据放到EXCEl表格中 EasyExcel.write(fileName, DataDTO.class).sheet("staff_vacation").doWrite(dataDTOS); return fileName;
3.排错思路
一开始出现空指针是因为数据库里面有脏数据,解决后上传到服务器发现问题还会存在,通过查看日志发现是从数据库查出文件后出现的空指针,没有对数据进行写入Excel操作。
首先确定路径没问题后,在代码中对写入文件单独抛异常后发现正常运行,发现就是写入文件的问题,What!!!!写入怎么会出错呢,本地跑是没问题的。经过一番百度后,确定了问题的所在:
- easyExcel和POI的jar包不兼容
Easyexcel的使用,选对版本很重要,不然会报错。官方推荐的版本清单如下:
poi版本:3.17及以上
easyexcel版本:建议使用2.0.x及以上
本文的讨论及代码,基于以下版本:
poi版本:3.17
easyexcel版本:建议使用2.0.6及以上
1. EasyExcel mac或者windows下导出EXCEL正常,Linux服务器下NullPointerException
经过了解,知道是因为alpine中缺少FontConfiguration,那么就考虑安装ttf-dejavu这个软件。
在这篇博客找到了解决办法。
在服务器适当位置位置创建一个Dockerfile,内容为:
FROM java:8-jre-alpine # Install cURL RUN echo -e "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/main\n\ https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/community" > /etc/apk/repositories RUN apk --update add curl bash ttf-dejavu && \ rm -rf /var/cache/apk/*
在同一位置执行:
docker build -t docker.io/java-font:8-jre-alpine .
执行完毕后会有一个新的java的镜像:
REPOSITORY IMAGE ID CREATED SIZE docker.io/java-font 8-jre-alpine dc7703ec6f07 31 hours ago 131.5 MB
再次构建项目的时候使用新的jdk镜像即可解决问题。
这篇关于使用easyExcel上传至Linux服务器出现空指针的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法