一、背景介绍
二、问题描述
三、问题定位
3.1 排查过程
: Excel导出错误at cn.afterturn.easypoi.excel.export.ExcelExportService.createSheet(ExcelExportService.java:118)at cn.afterturn.easypoi.excel.ExcelExportUtil.exportExcel(ExcelExportUtil.java:87)at com.jd.jxqe.ph.service.export.impl.ExportRequireServiceImpl.writeOfflineExcel(ExportRequireServiceImpl.java:346)at com.jd.jxqe.ph.service.export.impl.ExportRequireServiceImpl.export(ExportRequireServiceImpl.java:216)at sun.reflect.GeneratedMethodAccessor1931.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:497)at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:197)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at com.jd.jxqe.ph.common.MdcTaskDecorator.lambda$decorate$0(MdcTaskDecorator.java:26)at com.alibaba.ttl.TtlRunnable.run(TtlRunnable.java:59)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)Caused by: java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.CellStyle.setAlignment(S)Vat cn.afterturn.easypoi.excel.export.styler.ExcelExportStylerDefaultImpl.stringNoneStyle(ExcelExportStylerDefaultImpl.java:69)at cn.afterturn.easypoi.excel.export.styler.AbstractExcelExportStyler.createStyles(AbstractExcelExportStyler.java:44)at cn.afterturn.easypoi.excel.export.styler.ExcelExportStylerDefaultImpl.<init>(ExcelExportStylerDefaultImpl.java:31)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:422)at cn.afterturn.easypoi.excel.export.ExcelExportService.insertDataToSheet(ExcelExportService.java:159)at cn.afterturn.easypoi.excel.export.ExcelExportService.createSheetForMap(ExcelExportService.java:145)at cn.afterturn.easypoi.excel.export.ExcelExportService.createSheet(ExcelExportService.java:115)16 common frames omitted
3.2 白夜追凶
<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.0.1</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.0.1</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId><version>4.0.0</version><exclusions><exclusion><artifactId>guava</artifactId><groupId>com.google.guava</groupId></exclusion></exclusions></dependency>
四、问题解决
4.1 初次升级版本
4.2 二次入坑
20:38:04.730 [/] [exportThreadPoolExecutor--6] ERROR org.springframework.aop.interceptor.SimpleAsyncUncaughtExceptionHandler - Unexpected error occurred invoking async method 'public com.jd.jxqe.ph.common.ResponseResult com.jd.jxqe.ph.service.export.impl.ExportRequireServiceImpl.export(com.jd.jxqe.ph.model.dto.EventQueryDTO) throws java.lang.InterruptedException'.: org.openxmlformats.schemas.spreadsheetml.x2006.main.CTFont.addNewFamily()Lorg/openxmlformats/schemas/spreadsheetml/x2006/main/CTFontFamily;at org.apache.poi.xssf.usermodel.XSSFFont.setFamily(XSSFFont.java:635)at org.apache.poi.xssf.usermodel.XSSFFont.setFamily(XSSFFont.java:647)at org.apache.poi.xssf.model.StylesTable.createDefaultFont(StylesTable.java:765)at org.apache.poi.xssf.model.StylesTable.initialize(StylesTable.java:716)at org.apache.poi.xssf.model.StylesTable.<init>(StylesTable.java:130)at org.apache.poi.ooxml.POIXMLFactory.newDocumentPart(POIXMLFactory.java:94)at org.apache.poi.ooxml.POIXMLDocumentPart.createRelationship(POIXMLDocumentPart.java:591)at org.apache.poi.ooxml.POIXMLDocumentPart.createRelationship(POIXMLDocumentPart.java:500)at org.apache.poi.xssf.usermodel.XSSFWorkbook.onWorkbookCreate(XSSFWorkbook.java:465)at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:255)at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:249)at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:237)at cn.afterturn.easypoi.excel.ExcelExportUtil.getWorkbook(ExcelExportUtil.java:124)at cn.afterturn.easypoi.excel.ExcelExportUtil.exportExcel(ExcelExportUtil.java:115)at com.jd.jxqe.ph.service.export.impl.ExportRequireServiceImpl.writeOfflineExcel(ExportRequireServiceImpl.java:348)at com.jd.jxqe.ph.service.export.impl.ExportRequireServiceImpl.export(ExportRequireServiceImpl.java:216)at sun.reflect.GeneratedMethodAccessor1333.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:497)at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:197)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at com.jd.jxqe.ph.common.MdcTaskDecorator.lambda$decorate$0(MdcTaskDecorator.java:26)at com.alibaba.ttl.TtlRunnable.run(TtlRunnable.java:59)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)
org.openxmlformats.schemas.spreadsheetml.x2006.main.CTFont这个类在以下:
org.apache.poi:poi-ooxml-lite:jar:5.0.0:compileorg.apache.poi:poi-ooxml-schemas:jar:4.1.1:compile
4.3 彻底修复

