excel导出在docker环境中总是失败的问题

excel导出在docker环境中总是失败 ,最直接的原因还是因为没有安装中文字体,解决方法如下:

DOCKER环境中没有安装中文字体,需要安装

java.lang.NullPointerException: null
2020/5/29 上午8:40:11 at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)
2020/5/29 上午8:40:11 at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)
2020/5/29 上午8:40:11 at sun.awt.FontConfiguration.init(FontConfiguration.java:107)
2020/5/29 上午8:40:11 at sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:776)
2020/5/29 上午8:40:11 at sun.font.SunFontManager$2.run(SunFontManager.java:431)
2020/5/29 上午8:40:11 at java.security.AccessController.doPrivileged(Native Method)
2020/5/29 上午8:40:11 at sun.font.SunFontManager.<init>(SunFontManager.java:376)
2020/5/29 上午8:40:11 at sun.awt.X11FontManager.<init>(X11FontManager.java:57)
2020/5/29 上午8:40:11 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
2020/5/29 上午8:40:11 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
2020/5/29 上午8:40:11 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
2020/5/29 上午8:40:11 at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
2020/5/29 上午8:40:11 at java.lang.Class.newInstance(Class.java:442)
2020/5/29 上午8:40:11 at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:83)
2020/5/29 上午8:40:11 at java.security.AccessController.doPrivileged(Native Method)
2020/5/29 上午8:40:11 at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
2020/5/29 上午8:40:11 at java.awt.Font.getFont2D(Font.java:491)
2020/5/29 上午8:40:11 at java.awt.Font.canDisplayUpTo(Font.java:2060)
2020/5/29 上午8:40:11 at java.awt.font.TextLayout.singleFont(TextLayout.java:470)
2020/5/29 上午8:40:11 at java.awt.font.TextLayout.<init>(TextLayout.java:531)
2020/5/29 上午8:40:11 at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:254)
2020/5/29 上午8:40:11 at org.apache.poi.xssf.streaming.AutoSizeColumnTracker.<init>(AutoSizeColumnTracker.java:117)
2020/5/29 上午8:40:11 at org.apache.poi.xssf.streaming.SXSSFSheet.<init>(SXSSFSheet.java:77)
2020/5/29 上午8:40:11 at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:636)
2020/5/29 上午8:40:11 at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:657)
2020/5/29 上午8:40:11 at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:71)
2020/5/29 上午8:40:11 at com.chanjet.dsf.util.ExcelUtil.exportExcel(ExcelUtil.java:783)
2020/5/29 上午8:40:11 at com.chanjet.dsf.base.BaseService.uploadExcel(BaseService.java:89)
2020/5/29 上午8:40:11 at com.chanjet.dsf.goods.service.impl.GoodsServiceImpl.importExcel(GoodsServiceImpl.java:340)
2020/5/29 上午8:40:11 at com.chanjet.dsf.goods.service.impl.GoodsServiceImpl$$FastClassBySpringCGLIB$$d268cc51.invoke(<generated>)
2020/5/29 上午8:40:11 at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
2020/5/29 上午8:40:11 at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)
2020/5/29 上午8:40:11 at com.chanjet.dsf.goods.service.impl.GoodsServiceImpl$$EnhancerBySpringCGLIB$$a0a512ec.importExcel(<generated>)
2020/5/29 上午8:40:11 at com.chanjet.dsf.goods.controller.GoodsController.importExcel(GoodsController.java:105)
2020/5/29 上午8:40:11 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2020/5/29 上午8:40:11 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2020/5/29 上午8:40:11 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2020/5/29 上午8:40:11 at java.lang.reflect.Method.invoke(Method.java:497)
2020/5/29 上午8:40:11 at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
2020/5/29 上午8:40:11 at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
2020/5/29 上午8:40:11 at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
2020/5/29 上午8:40:11 at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879)
2020/5/29 上午8:40:11 at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
2020/5/29 上午8:40:11 at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
2020/5/29 上午8:40:11 at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
2020/5/29 上午8:40:11 at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
2020/5/29 上午8:40:11 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
2020/5/29 上午8:40:11 at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
2020/5/29 上午8:40:11 at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
2020/5/29 上午8:40:11 at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
2020/5/29 上午8:40:11 at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
2020/5/29 上午8:40:11 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
2020/5/29 上午8:40:11 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
2020/5/29 上午8:40:11 at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
2020/5/29 上午8:40:11 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
2020/5/29 上午8:40:11 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
2020/5/29 上午8:40:11 at com.chanjet.dsf.filter.RefreshContextFilter.doFilter(RefreshContextFilter.java:29)
2020/5/29 上午8:40:11 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
2020/5/29 上午8:40:11 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
2020/5/29 上午8:40:11 at com.chanjet.dsf.filter.WebLogMDCFilter.doFilter(WebLogMDCFilter.java:27)
2020/5/29 上午8:40:11 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
2020/5/29 上午8:40:11 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
2020/5/29 上午8:40:11 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
2020/5/29 上午8:40:11 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
2020/5/29 上午8:40:11 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
2020/5/29 上午8:40:11 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
2020/5/29 上午8:40:11 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
2020/5/29 上午8:40:11 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
2020/5/29 上午8:40:11 at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
2020/5/29 上午8:40:11 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
2020/5/29 上午8:40:11 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
2020/5/29 上午8:40:11 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
2020/5/29 上午8:40:11 at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:747)
2020/5/29 上午8:40:11 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
2020/5/29 上午8:40:11 at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367)
2020/5/29 上午8:40:11 at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
2020/5/29 上午8:40:11 at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
2020/5/29 上午8:40:11 at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1639)
2020/5/29 上午8:40:11 at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
2020/5/29 上午8:40:11 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
2020/5/29 上午8:40:11 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
2020/5/29 上午8:40:11 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
2020/5/29 上午8:40:11 at java.lang.Thread.run(Thread.java:745)

到此这篇关于excel导出在docker环境中总是失败的问题的文章就介绍到这了,更多相关docker excel失败内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • IDEA JetBrains Mono字体介绍和安装教程(详解)

    JetBrainsMono 是 JetBrains 公司开发的一款开源字体,可免费商用. 正如其名字带的Mono,即Monospaced Font,它一款为开发者设计的等宽字体. Intellij IDEA 公司 JetBrains 推出了一种新字体:JetBrains Mono,它是专为开发人员设计的.为什么说它是专门为开发人员设计的呢?因为当前流行使用的各种字体,并未考虑到在代码开发阅读时的美观舒适,往往一天下来,聚精会神的你两眼难免会干涩难受.因此,在 JetBrains Mono 的设计

  • linux系统安装字体详细介绍

    linux系统安装字体详细介绍 前言: 使用linux做桌面系统有很多好处,比如内存可以节约不少啊.系统垃圾减少啊.软件自动启动完全受控制啊.病毒那些大大减少啊什么的,但是也有不少问题,比如一个问题就是很多windows上的字体就没有-- 这个也不怪linux,因为很多字体都是有版权的,linux发行版不敢随意打包进安装包啊,特别是中文经常用到的"微软雅黑",一看名字就知道,是微软制作出来的. 但是,发行版不能打包,我们可以偷偷的进行搬运安装啊 ,可以在网上下载其他人制作的字体文件来安

  • 用批处理实现批量安装字体的bat文件

    复制代码 代码如下: @echo off color 3f title 字体批量安装脚本 echo A|xcopy *.ttf %windir%\fonts\ echo 安装完毕,任意键退出.... pause>nul exit echo a就是全部覆盖的,使用了通道.原理就是复制当面目录中的ttf复制到fonts目录,实现字体的安装,比较简单,不懂的可以留言.

  • Centos6安装中文字体的方法

    先安装字体管理软件 [root@localhost ~]# yum install fontconfig 将需要安装的字体放到/usr/share/fonts/chinese/目录下 如果不存在这个目录,可以自行创建 修改目录权限,以便其他用户也可以使用 [root@localhost ~]# chmod -R 755 /usr/share/fonts/chinese 应用更改 [root@localhost ~]# fc-cache -fv 注意,某些应用可能需要重启才能生效 使用下面的命令可

  • 把windows下的字体安装到Linux系统下的方法介绍

    Linux(Fedora/Ubuntu/CentOS)的字体实在不尽如人意,而且在网页及文档显示时很多字无法显示出来,特别多的空白和乱码,其实,我们可以把windows下的字体和自己心仪的字体添加到Linux中,本文将介绍如何在Linux下添加字体. 一.Linux添加字体方法介绍 1.首先在windows的"控制面板"->"字体"中,将自己要的字体复制出来. 再进入到Linux(Fedora/Ubuntu),在桌面新建一个文件夹,名字叫做font,把Wind

  • excel导出在docker环境中总是失败的问题

    excel导出在docker环境中总是失败 ,最直接的原因还是因为没有安装中文字体,解决方法如下: DOCKER环境中没有安装中文字体,需要安装 java.lang.NullPointerException: null 2020/5/29 上午8:40:11 at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264) 2020/5/29 上午8:40:11 at sun.awt.FontConfiguration.re

  • 生产环境中安全运行Docker容器

    在生产环境中,强化Docker容器的一种方法就是使它们不可变,也就是只读.安全地运行容器的其他方法还包括最小化受攻击面和应用Linux安全过程,标准Linux安全过程和针对容器环境的特定过程都要应用. 在启动容器时传入--read-only标记就可以 在只读模式下运行 它.这可以防止任何进程写入文件系统.任何试图写入的动作都会导致错误. 运行这种不可变的基础设施 也与其他软件部署流水线的最佳实践相吻合. 尽管不可变性可以阻止任何恶意脚本的执行,可以禁止通过在容器里运行的其他软件暴露出来的漏洞而引

  • Docker容器中Mysql数据的导入/导出详解

    前言 Mysql数据的导入导出我们都知道一个mysqldump命令就能够解决,但如果是运行在docker环境下的mysql呢? 解决办法其实还是用mysqldump命令,但是我们需要进入docker的mysql容器内去执行它,并且通过配置volumes让导出的数据文件可以拷贝到宿主机的磁盘上 所以操作步骤就可以分为: 配置docker的volumes 进入docker的mysql容器,导出数据文件 至于数据导入,太过简单,就不说了 先来看看mysqldump命令常见选项: --all-datab

  • php中通用的excel导出方法实例

    一.普遍导出方法 excel导出的方法网上有很多,在crm或是oa系统中导出excel是常有的事,做过的此功能人都知道,其主要操作其实是循环数据列表,然后一格一格地添加数据到固定的单元格中.只要做好了一次,其后只要复制相关代码修改修改,其他地方导出功能也就完成了. 但是这样会有两个问题: 1.当列表数据字段修改时,需要修改大量的代码,维护艰难,改着难受: 2.多次出现导出功能时,需要在多个地方复制大量的重复冗余代码,看着难受: 因此,有必要统一一个导出excel的方法,使用时,只需要传入数据的表

  • Java中实现简单的Excel导出

    简单介绍一下Java中的Excel文件导出功能(基于HttpServletResponse实现下载) 首先,引入需要依赖的jar包: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </dependency> <dependency> <gro

  • Java导出excel时合并同一列中相同内容的行思路详解

    一.有时候导出Excel时需要按类别导出,一大类下好几个小类,小类下又有好几个小小类,就像下图: 要实现这个也不难, 思路如下:按照大类来循环,如上就是按照张江校区.徐汇校区.临港校区三个大类循环,然后再处理小类,因为本例小小类不涉及合并,所以只涉及处理小类,如果需要处理小小类,还需要在处理一下,具体实现原理同小类: 每次循环时记录下此次循环的房屋类型和上次循环的房屋类型,两者相同时,要合并的结束行++,否者,说明这个房屋类型已经循环完毕(前提是各类型都按顺序order by 了,保证相同类型相

  • vue中后端做Excel导出功能返回数据流前端的处理操作

    项目中有一个导出功能的实现,用博客来记录一下.因为需求对导出表格的数据格式和样式有要求,所以这个导出功能放到后端来做,而且后端返回的是数据流,所以需要处理成想要的表格并导出来. 先看下效果图: 页面效果: 点击 导出Excel 调用导出接口成功了: 后台返回的数据流,一堆看不懂的乱码: 接下来要处理这堆乱码,因为用到的地方多,所以在util.js文件里封装了一个公共方法并抛出: 虽然vue里有封装好的请求接口的方法,但这里要单独用axios,所以先在util.js里引入axios import

  • 使用docker在linux环境中部署springboot包的教程

    因为springboot是内嵌了tomcat服务器的,所以打成jar包后,是可以直接运行的. 首先我们看一下,在windows环境下的打包部署 1. 进行install打包 2. 检查,在target目录中是否存在了项目jar包 3.如果已经存在了项目jar包,就可以直接运行了(前面说了,springboot包是可以直接运行的) 4.在dos命令框中使用java -jar指令 java -jar springboot-nriat-common-demo-0.0.1-SNAPSHOT.jar 启动

  • 详解Java如何实现百万数据excel导出功能

    目录 前言 1.异步处理 1.1 使用job 1.2 使用mq 2.使用easyexcel 3.分页查询 4.多个sheet 5.计算limit的起始位置 6.文件上传到OSS 7.通过WebSocket推送通知 8.总条数可配置 9.order by商品编号 总结 前言 最近我做过一个MySQL百万级别数据的excel导出功能,已经正常上线使用了. 这个功能挺有意思的,里面需要注意的细节还真不少,现在拿出来跟大家分享一下,希望对你会有所帮助. 原始需求:用户在UI界面上点击全部导出按钮,就能导

  • 在CentOS 7上安装Docker环境的方法与注意事项

    官网文档:https://docs.docker.com/engine/installation/linux/centos/ ,本文大部分是照搬官方文档写的,如果你英文还不错,那么就直接移步官方文档吧,如果你英文实在是不行,那就勉强看一下本人这生涩的翻译~ 以下操作均在root用户下完成 docker的安装要求64位系统且内核版本大于3.10.所以如果是centos的话,必须安装CentOS7.0或以上版本. 我们这里使用的是CentOS7.2 mininul. uname -r 3.10.0-

随机推荐