项目中尝试使用了easyexcel替换了原生poi。测试时线下没啥问题,放到服务器里导出的文件就被损坏。

由于这篇记录是后补的,所以没有报错截图。

大致的错误是:缺少字体样式文件导致的null报错,而字体样式是jdk自带的。

我自己检测了代码没发现什么问题。最后和同事一起在服务器的log中发现了一个null报错。然后查看了整个项目的部署流程,终于发现问题。

因为线上运维环境已换成了k8s集群部署,所有的前后端都需要打成docker镜像,在pod里跑。我查看了api镜像打包的dockerfile文件,然后看到了这一行:

FROM openjdk:8-jdk-alpine

卧槽,什么情况?啥时候换openjdk了?咋没人通知?

openjdk具体是啥?

这么说吧,openjdk与jdk的区别。openjdk开源、免费、只包含了最精简的JDK。通常由于产权,openjdk中大多数关于SUN JDK的源码被替换了。所以easyexcel或者说poi中使用到的JDK字体文件就会报null异常。

更详细的请百度。

解决方法:

我们采用的方法是,把运维人员拖出来打一顿,然后dockerfile里把openjdk换了:

oracle-serverjre:8

说到底还是经验不足,其实早点在前端把导出的log打出来就发现错误了。

easypoi 导入oracle,记一次由openjdk导致的poi错误(easyexcel)相关推荐

  1. sql server 2008数据导入Oracle方法

    试了几种sql server数据导入Oracle的方法,发现还是sql server 的导入导出工具最好使.使用方法很简单,照着向导做就可以.不过使用中需要注意以下几点: 系统盘需要足够大.因为SSI ...

  2. shp文件导入Oracle并发布到Geoserver

    将shp文件导入oracle中,并发布到geoserver上 1. 环境准备 1.1 环境介绍 Oracle 11g Geoserver 2.11.1 1.2 软件准备 首先需要安装支持空间数据的or ...

  3. Excel百万数据导入oracle,excel表数据导入oracle的方法!(超级有用)

    excel表导入oracle数据库的方法,这些方法也可以用于将其它格式的数据导入到oracle中,这里只是以excel为例.oracle9i以上.21村落‑i3?:L L4s9U#[z:u,U‑l方法 ...

  4. 如何将TXT,EXCEL或CSV数据导入ORACLE到对应表中

    如何将TXT,EXCEL或CSV数据导入ORACLE到对应表中 2011-05-12 14:19 方法一,使用SQL*Loader      这个是用的较多的方法,前提必须oracle数据中目的表已经 ...

  5. 批处理实现从Excel导入Oracle

    之前做过一个从Oracle导出到Excel的批处理,简单点说就是通过Sqlplus将表数据Spool到一个文本文件中或简化的Excel格式文档中,而这里我要做的事恰好相反,工具则是使用sqlldr, ...

  6. sql中的text字段如何导入oracle

    这一段时间在把SQLSERVER迁移到ORASCLE,中间遇到了一系列的问题,通过查找资料和想办法,已经基本顺利解决,后面我会针对两个数据库迁移过程中我遇到的问题,整理汇总成一个个小问题,带着实例编码 ...

  7. 简析将shp导入Oracle并利用geoserver将导入的数据发布

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.环境准备 1.1 软件准备 首先要安装有支持空间数据的Oracle ...

  8. oracle+挂载dbf,dbf导入oracle工具下载|OracleToDbf(dbf导入oracle工具) v1.2官方版 附教程_星星软件园...

    OracleToDbf是一款好用的dbf导入oracle工具,该工具操作简单,只需要几个简单的步骤,就可以完成导入导出操作,它还拥有提供重复操作.查询导出.自动导出等实用功能,为您节约大量的时间,具有 ...

  9. dataset中的数据批量导入oracle数据库,c#如何将dataset中的数据批量导入oracle数据库...

    c#如何将dataset中的数据批量导入oracle数据库以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! c#如何将da ...

最新文章

  1. 【深度学习】面向医学图像的病灶分割调研(一)
  2. 【数字信号处理】线性时不变系统 LTI “ 输入 “ 与 “ 输出 “ 之间的关系 ( 线性卷积计算方法列举 | 线性卷积计算案例一 | 根据 线性卷积 定义直接计算 卷积 )
  3. “让Keras更酷一些!”:分层的学习率和自由的梯度
  4. php实现上传文件功能,简单实现php上传文件功能
  5. BeautifulSoup 返回网页标签的名称、父标签名称、行号、完整路径
  6. 为什么Java不允许super.super.method();
  7. .NET环境下水晶报表使用总
  8. SQL查询集合合并成字符串
  9. 模拟器与真机的程序差别J2ME
  10. Vue打包时报错:ReferenceError: primordials is not defined
  11. python读取中文txt操作 转化为拼音
  12. Atitit.web ui  组件化 vs  mvc
  13. dlib android 识别时间,android dlib调用
  14. 苹果手机绕激活锁之亲身体验
  15. VEX到底是一种什么机器人?和乐高有什么区别?
  16. 淘宝APP用户体系运营拆解​
  17. 博客线下推广的小技巧
  18. 如何使用OpenCV在图像中抠出指定的颜色区域
  19. Lodash pick
  20. 使用有道api抓取读音

热门文章

  1. stauml工具怎么导入文件_小伙教大家怎么剪辑短视频,1小时就学会添加字幕,值得收藏哦...
  2. 年货节页面PSD分层模板,拿稳了!应急!
  3. PPT优秀模板|7个技巧,让你的设计呈现更加完美
  4. 艺术创意灵感地---集设网 | 人体彩绘的张力
  5. oracle中实现分页,Oracle中实现分页的方法
  6. 移动端上下拖动调整顺序效果_移动端上下滑动事件之--坑爹的touch.js
  7. mysql 停数据库_mysql数据库突然停了
  8. vue 表格中有列需要异步加载_Vue中使用async/await解决异步请求问题
  9. Ubuntu20.04安装eBPF BCC
  10. OpenVDB Download