解决springboot项目打war 包docker包找不到resource 下的静态资源问题
2016-10-24 23:25
961 查看
前一段时间遇到一个问题,是关于读取项目中文件资源的问题。我是一个maven 工程 我把一张照片放到resource 下面,然后在本地读取的时候 可以读取到,但是一旦打成WAR 包以后就总是包找不到文件资源错误。 我的war 包是springboot 打的war 包,是内嵌的tomcat 所以不解压,然后系统去找路径的时候会发现是个WAR 包,而图片在WAR 包内,所以找不到。
为了解决这个问题,我走了好多弯路,一直在路径上花费时间。最后我是通过系统运行去读取文件源,然后将文件流存储在服务器上,存一个临时文件,然后系统再去读这个临时文件,然后就读取到这个文件了。
调用代码如下
转换方法代码如下
为了解决这个问题,我走了好多弯路,一直在路径上花费时间。最后我是通过系统运行去读取文件源,然后将文件流存储在服务器上,存一个临时文件,然后系统再去读这个临时文件,然后就读取到这个文件了。
其实就是java数据流转换为文件
解题思路是上述那样的。接着就是代码了调用代码如下
File f = new File("/tmp/image1.jpg"));//临时图片存在的位置 if (!f.exists()) { InputStream in = this.getClass().getResourceAsStream("/templates/emailImg.png");//图片在项目中的位置 FileUtil.inputstreamtofile(in, f); } // 如果需要使用文件,这个/tmp/image1.jpg就是临时文件路径
转换方法代码如下
public static void inputstreamtofile(InputStream ins, File file) { try { OutputStream os = new FileOutputStream(file); int bytesRead = 0; byte[] buffer = new byte[8192]; while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) { os.write(buffer, 0, bytesRead); } os.close(); ins.close(); } catch (Exception e) { e.printStackTrace(); } }
相关文章推荐
- @maohoo Spring boot 配置Tomcat 根目录,解决web资源目录找不到的问题
- 解决SpringBoot整合shiro之后无法加载静态资源文件问题
- 解决SpringBoot项目打成jar包访问不了jsp模板的问题: SpringBoot项目集成jsp模板打成war包 然后通过java -jar 命令启动访问
- 解决SpringBoot 整合 FreeMaker,不能js,css静态资源的问题
- 创建Spring-Mybatis web项目,解决IDEA下找不到XXXmapper.xml文件的问题
- Spring boot 项目 maven的profile多环境配置 不自动替换变量的问题解决
- spring boot 项目增加flyway的使用遇到问题解决
- No mapping found for HTTP request with URI 找不到图片或者其他的静态资源问题解决办法
- springboot下配置resource路径下的静态资源
- 解决 IntelliJ IDEA 无法热加载 Spring Boot 模板文件和静态资源文件
- SpringBoot项目打包后,找不到文件路径问题,处理方法
- springboot项目访问静态资源(默认方式)
- Spring Boot整合UEditor,解决找不到上传文件的问题
- J2EE for SpringMVC 映射静态资源独Js不成功的问题解决
- springboot项目打包部署时把静态资源打包到jar中、或修改静态资源根目录
- 创建Spring-Mybatis web项目,解决IDEA下找不到XXXmapper.xml文件的问题
- Java 本地化 Locale 资源包 PropertyResourceBundle 找不到资源包问题解决
- SpringBoot项目使用视图解析器解决Circular view path 问题
- Java 本地化 Locale 资源包 PropertyResourceBundle 找不到资源包问题解决
- SpringBoot项目打包后,找不到文件路径问题,处理方法