欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Springboot項目打war包docker包找不到resource下靜態(tài)資源的解決方案

 更新時間:2019年03月25日 15:04:28   作者:雙斜杠少年  
今天小編就為大家分享一篇關于Springboot項目打war包docker包找不到resource下靜態(tài)資源的解決方案,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

前一段時間遇到一個問題,是關于讀取項目中文件資源的問題。我是一個maven工程 我把一張照片放到resource下面,然后在本地讀取的時候可以讀取到,但是一旦打成WAR包以后就總是包找不到文件資源錯誤。我的war包是springboot打的war包,是內(nèi)嵌的tomcat所以不解壓,然后系統(tǒng)去找路徑的時候會發(fā)現(xiàn)是個WAR包,而圖片在WAR包內(nèi),所以找不到。

為了解決這個問題,我走了好多彎路,一直在路徑上花費時間。

一開始使用修改配置文件的方式:

# 配置靜態(tài)資源訪問前綴
spring.mvc.static-path-pattern=*/**
# 配置靜態(tài)資源路徑,默認配置失效
spring.resources.static-locations=../upload

發(fā)現(xiàn)并不行,無法解析出相對路徑。

最后我是通過系統(tǒng)運行去讀取文件源,然后將文件流存儲在服務器上,存一個臨時文件,然后系統(tǒng)再去讀這個臨時文件,然后就讀取到這個文件了。

其實就是java數(shù)據(jù)流轉換為文件

解題思路是上述那樣的。接著就是代碼了

調(diào)用代碼如下

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();
    }
  }

需要注意一下, 放置臨時文件的路徑可能是在docker容器中的,而不是在服務器上. 所以需要先把前面的路徑 mkdirs, 然后再f.createNewFile;, 一下再調(diào)用FileUtil.inputstreamtofile才可以。

總結

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接

相關文章

  • Flink DataStream基礎框架源碼分析

    Flink DataStream基礎框架源碼分析

    這篇文章主要為大家介紹了Flink DataStream基礎框架源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • springboot?Long?精度丟失問題解決

    springboot?Long?精度丟失問題解決

    這篇文章主要為大家介紹了解決springboot?Long?精度丟失問題的方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Java servlet執(zhí)行流程代碼實例

    Java servlet執(zhí)行流程代碼實例

    這篇文章主要介紹了Java servlet執(zhí)行流程代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • Java處理時間格式CST和GMT轉換方法示例

    Java處理時間格式CST和GMT轉換方法示例

    這篇文章主要給大家介紹了關于Java處理時間格式CST和GMT轉換方法的相關資料,相信很多小伙伴在時間格式轉換的時候非常頭疼,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • java取兩個字符串的最大交集

    java取兩個字符串的最大交集

    這篇文章主要介紹了java取兩個字符串的最大交集的方法,涉及Java對字符串操作的技巧,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-10-10
  • 【Java】BigDecimal實現(xiàn)加減乘除運算代碼

    【Java】BigDecimal實現(xiàn)加減乘除運算代碼

    本篇文章主要介紹了【Java】BigDecimal實現(xiàn)加減乘除運算代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • springboot自定義starter啟動器的具體使用實踐

    springboot自定義starter啟動器的具體使用實踐

    本文主要介紹了springboot自定義starter啟動器的具體使用實踐,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • spring cloud服務之間的調(diào)用之ribbon詳解

    spring cloud服務之間的調(diào)用之ribbon詳解

    關于spring-cloud的服務調(diào)用,我們首先需要了解它的兩個核心組件Ribbon和Feign。接下來通過本文給大家詳細介紹spring-cloud服務之間的調(diào)用之ribbon,感興趣的朋友一起看看吧
    2021-08-08
  • Java使用Graphics2D實現(xiàn)字符串文本自動換行

    Java使用Graphics2D實現(xiàn)字符串文本自動換行

    這篇文章主要為大家詳細介紹了Java如何使用Graphics2D實現(xiàn)字符串文本自動換行,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-04-04
  • spring?boot?導出數(shù)據(jù)到excel的操作步驟(demo)

    spring?boot?導出數(shù)據(jù)到excel的操作步驟(demo)

    這篇文章主要介紹了spring?boot?導出數(shù)據(jù)到excel的實現(xiàn)步驟,文中通過打開一個平時練習使用的springboot的demo給大家詳細介紹,需要的朋友可以參考下
    2022-03-03

最新評論