openjdk导出文件时报空指针异常--casesby 字体

参考链接:
https://blog.adoptopenjdk.net/2021/01/prerequisites-for-font-support-in-adoptopenjdk/
http://www.shadow-li.com.cn/alpine-jdk-font-null/
报错信息

stackTrace
: 
"cn.afterturn.easypoi.exception.excel.ExcelExportException: Excel导出错误\n\tat cn.afterturn.easypoi.excel.export.ExcelBatchExportService.createSheet(ExcelBatchExportService.java:97)\n\tat cn.afterturn.easypoi.excel.export.ExcelBatchExportService.init(ExcelBatchExportService.java:53)\n\tat cn.afterturn.easypoi.excel.export.ExcelBatchExportService.init(ExcelBatchExportService.java:43)\n\tat cn.afterturn.easypoi.excel.ExcelExportUtil.exportBigExcel(ExcelExportUtil.java:87)\n\tat com.alo7.abm.b2b.controller.BaseController.getWorkbookWithExclusion(BaseController.java:217)\n\tat com.alo7.abm.b2b.controller.BaseController.getWorkbook(BaseController.java:196)\n\tat com.alo7.abm.b2b.fund.controller.B2bCardControllerImpl.batchExportCardMain(B2bCardControllerImpl.java:346)\n\tat com.alo7.abm.b2b.fund.controller.B2bCardControllerImpl$$FastClassBySpringCGLIB$$11b2ba69.invoke(<generated>)\n\tat org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n\tat org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:112)\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n\tat org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\n\tat com.alo7.abm.b2b.fund.controller.B2bCardControllerImpl$$EnhancerBySpringCGLIB$$22909a67.batchExportCardMain(<generated>)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\n\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\n\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:665)\n\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:750)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat com.alo7.abm.b2b.config.RequestWrapperFilter.doFilterInternal(RequestWrapperFilter.java:20)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat com.alo7.framework.logging.web.SentryContextFilter.doFilter(SentryContextFilter.java:30)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:90)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.springframework.cloud.sleuth.instrument.web.ExceptionLoggingFilter.doFilter(ExceptionLoggingFilter.java:48)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat brave.servlet.TracingFilter.doFilter(TracingFilter.java:86)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:155)\n\tat org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:123)\n\tat org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:108)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat com.alo7.framework.logging.web.LoggingContextFilter.doFilter(LoggingContextFilter.java:118)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n\tat org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n\tat org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\n\tat ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:256)\n\tat org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n\tat org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\n\tat org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n\tat org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n\tat org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\n\tat org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n\tat org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800)\n\tat org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1471)\n\tat org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n\tat java.lang.Thread.run(Thread.java:748)\nCaused by: java.lang.NullPointerException\n\tat sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)\n\tat sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)\n\tat sun.awt.FontConfiguration.init(FontConfiguration.java:107)\n\tat sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:774)\n\tat sun.font.SunFontManager$2.run(SunFontManager.java:431)\n\tat java.security.AccessController.doPrivileged(Native Method)\n\tat sun.font.SunFontManager.<init>(SunFontManager.java:376)\n\tat sun.awt.FcFontManager.<init>(FcFontManager.java:35)\n\tat sun.awt.X11FontManager.<init>(X11FontManager.java:57)\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\n\tat sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\n\tat java.lang.reflect.Constructor.newInstance(Constructor.java:423)\n\tat java.lang.Class.newInstance(Class.java:442)\n\tat sun.font.FontManagerFactory$1.run(FontManagerFactory.java:83)\n\tat java.security.AccessController.doPrivileged(Native Method)\n\tat sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)\n\tat java.awt.Font.getFont2D(Font.java:491)\n\tat java.awt.Font.canDisplayUpTo(Font.java:2060)\n\tat java.awt.font.TextLayout.singleFont(TextLayout.java:470)\n\tat java.awt.font.TextLayout.<init>(TextLayout.java:531)\n\tat org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:273)\n\tat org.apache.poi.xssf.streaming.AutoSizeColumnTracker.<init>(AutoSizeColumnTracker.java:117)\n\tat org.apache.poi.xssf.streaming.SXSSFSheet.<init>(SXSSFSheet.java:82)\n\tat org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:684)\n\tat org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:676)\n\tat org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:88)\n\tat cn.afterturn.easypoi.excel.export.ExcelBatchExportService.createSheet(ExcelBatchExportService.java:94)\n\t... 99 more\n"

解决方案:将aipline镜像改为ubuntu的jdk8镜像,解决 了问题,貌似直接上alpile镜像加字体没有作用的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: openlogic-openjdk-8u292-b10-windows-x64是一个基于开源技术的Java平台,它是OpenLogic公司为Windows操作系统开发的一款Java开发工具,它主要适用于64位的Windows系统。该平台集成了包括Java开发工具、类库、以及运行环境等在内的一系列开发应用工具。 OpenLogic-OpenJDK-8u292-b10-windows-x64具有高效性、灵活性和稳定性,它可以支持多种应用程序的开发和运行,广泛应用在企业级应用、Web应用、嵌入式设备、移动设备等领域。在Java编程语言上,openlogic-openjdk-8u292-b10-windows-x64提供了一系列即时编译(JIT)、垃圾回收(GB)、Java线程、Java类库和运行环境等的优化技术,可以让Java程序在Windows系统上更加高效地运行和开发。 Openlogic-openjdk-8u292-b10-windows-x64还支持多语言开发,不仅可以用于Java语言的开发,还可以用于开发其他语言的编程环境。同时,该平台还支持多种数据库连接池、网络协议栈等开发应用程序的关键技术,可以更好地满足不同开发者及应用场景的需求,扩展Java应用程序的开发和运行能力。 总之,openlogic-openjdk-8u292-b10-windows-x64是一款高度适应性、效率高、可靠性强的开源Java平台,它可以帮助开发者们快速开发和部署Java应用程序,提升应用程序的开发效率和运行性能,是Java开发者们不可缺少的开发利器。 ### 回答2: OpenLogic-OpenJDK-8u292-b10-Windows-x64是一个供Windows 64位操作系统使用的免费Java开发环境,它基于OpenLogic社区推出的OpenJDK项目。它包含了Java开发所必需的工具,如Java编译器、Java执行环境、Java虚拟机等,并且具有很高的可移植性。 OpenLogic-OpenJDK-8u292-b10-Windows-x64采用GPLv2开源协议,因此任何人都可以免费使用、复制、修改和分发它。Java开发人员可以利用它所提供的强大功能,来编写跨平台的应用程序、applet、游戏或者Web应用程序,从而实现Java代码的多平台运行。同时,它还支持JRE(Java运行时环境),允许用户在没有JDK的情况下直接运行Java程序。 OpenLogic-OpenJDK-8u292-b10-Windows-x64是一种十分流行的Java开发环境,它提供了稳定、高效的Java运行时环境和优质的开发工具,让Java开发人员可以更加轻松愉快地进行软件开发工作。总之,如果您是一名Java开发者,那么OpenLogic-OpenJDK-8u292-b10-Windows-x64将会是您的一款不错的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值