SpringBoot打成jar包部署,Excel模板下载文件遇到的问题
问题一. 读取resource 目录下文件时出现路径找不到
在本机测试都很顺利,当打包jar文件放到服务器上测试的时候发现了类似下面的异常信息:
java.nio.file.NoSuchFileException: file:/app.jar!/BOOT-INF/classes!/xxx.xlsx
原因:spring boot 将项目打包为jar,使用 java - jar 包名 在服务器上运行。此时文件为打包文件,所以不能通过路径获取到文件。类似不能读取压缩包中的文件,必须先解压缩。结论:spring boot 中的文件只能通过流来进行读取。
可以通过以下方法进行流的读取。
InputStream in = this.getClass().getClassLoader().getResourceAsStream("xxx.xlsx");
问题二. Excel模板下载文件损坏
在本机测试都很顺利,当打包jar文件放到服务器上时下载完文件提示文件损坏
问题原因分析:
一开始度娘查到各种各样的说法,比如修改response请求回应头,比如使用ByteArrayHttpMessageConverter,比如修改文件读取方式,没点屁用!!
后面看到另外一篇文章,maven 打包的时候,使用了filter,其原理是处理文本文件,并将其替换
SpringBoot打成jar包部署,Excel模板下载文件遇到的问题相关推荐
- SpringBoot打成jar包部署,Excel模板下载文件损坏,提示恢复问题处理
Spring Boot 静态资源Excel模板文件下载遇到的坑 问题描述: 使用spring boot,在resource/static目录下,有Excel模板文件, 需要提供给用户下载,用于数据的导 ...
- SpringBoot打成jar包cmd中运行时修改配置文件的值
场景 若依前后端分离版手把手教你本地搭建环境并运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662 在上面 ...
- SpringBoot打成jar包时访问templates下的html出错或访问不到
SpringBoot打成jar包时访问templates下的html出错或访问不到 问题描述 背景 在Springboot项目中,本地环境下(idea)中,访问html文件的方式如图结构 问题 打成j ...
- SpringBoot 打成jar包供第三方引用自动装配方案实现
SpringBoot 打成jar包供第三方引用自动装配方案实现 每天多学一点点~ 话不多说,这就开始吧- 文章目录 SpringBoot 打成jar包供第三方引用自动装配方案实现 1.前言 2.使用者 ...
- springboot项目集成log4j2打成jar包 ,引入外边的log4j2文件,运行日志无法打印
springboot项目集成log4j2打成jar包 ,引入外边的log4j2文件,运行日志无法打印 问题描述 因为项目中已经有log4j2文件,所以打的jar中也有,在application.yml ...
- springboot打成jar后获取classpath下的文件
直接上代码 JAR包用这个 //获取容器资源解析器ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver( ...
- springboot打成Jar包下载Excel模板文件损坏问题
最近遇到Springboot环境项目打成jar后下载Excle文件出现损坏问题,我是在网上找了这种方法解决的: String fileName = "aaa.xlsx"; Clas ...
- SpringBoot打成Jar包运行,获取运行Jar包的目录
SpringBoot获取运行Jar包的目录 // linux和windows下通用 private String getJarFilePath() {ApplicationHome home = ne ...
- springboot打成jar包后linux服务器上无法读取resources资源文件里文件路径的问题
1.起因 将支付验正证书信息放在项目的resources资源文件下在本地通过 this.getClass().getResource("/").getPath() 可以正常读取证书 ...
最新文章
- python使用imbalanced-learn的SMOTETomek方法同时进行上采样和下采样处理数据不平衡问题
- rust高级矿场_高级 Rust 所有权管理
- C++ 类的保护继承与构造函数
- poj 2240 Arbitrage (floyd 变形)
- [转]正确配置Linux系统ulimit值的方法
- 判断一个男人穷还是富,只看这几点!
- 好爽 java_Intellij是进行scala开发的一个非常好用的工具,可以非常轻松查看scala源码,当然用它来开发Java也是很爽的,之前一直在用scala ide和ec...
- java访问方法修饰词四个_java中的四个修饰词(访问权限)
- All xxx functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
- Jabber 创建一个application dial rule
- .NET 4 实践 - 使用dynamic 和MEF实现轻量级的 AOP 组件 (1)
- xp桌面计算机在哪个文件夹,XP电脑的桌面背景在哪个文件夹?
- 机器学习笔记之基础概念
- python tox
- Photoshop制作剔透魔法水晶球
- 通信教程 | USB接口、标准和基础原理
- AM2120单总线温湿度传感器移植与应用
- 【秋招备战计划第一弹】今天就开始备战秋招
- Python之Flask框架(一)
- 旅游商城小程序怎么开发?