最近在协助解决poi表格生成,在Linux环境部署后的问题。

  1. 问题一:创建SXSSF Workbook时失败或者卡住了。

    准确的说,是创建的,后写入磁盘缓存,失败了或者卡住了。
    **原因:**授权目录问题。
    **分析:**需要确定下您启动项目,是用哪个用户启动的。一般生产环境,是非root用户。那么,会存在目录权限问题。我使用的tomcat容器,那么集成tomcat的默认临时磁盘缓存或读写文件目录是/tmp。
    解决:
    1、手动授权/tmp目录,chown -R 用户名 /tmp,然后重启项目会看到生成的临时写入文件。
    2、在项目中配置,我用的是springboot2.1版本

@Configuration
public class MultipartConfig {
    /**
     * 文件上传临时路径
     */
    @Bean
    MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        factory.setLocation("/tmp");
        return factory.createMultipartConfig();
    }
}

结果:
在这里插入图片描述

  1. 问题一:创建createSheet() 时失败或者卡住了。

这个问题就比较恶心了,直接打印的好多日志,才发现到这卡住了,
原因:poi在执行创建sheet时,需要fontconfig,说白了,就是需要一些字体库。不然,如果没有这个包,java.awt.Fonts不能工作,那么就不执行也不报错。
解决:

sudo apt-get update
sudo apt-get install fontconfig
centos系统:
yum install fontconfig
然后重启项目。
这个问题可参考:https://stackoverflow.com/questions/48989348/sxssf-workbook-createsheet-fails-on-linux-environments

这样问题就解决了

Logo

更多推荐