springboot打成war包找不到文件


項目在eclipse運行是可以的,但是打成war包到線上報錯:

FileNotFoundException: class path resource [static/apiclient_cert.p12] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/home/****-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/static/apiclient_cert.p12

代碼:

ClassPathResource classPathResource = new ClassPathResource("apiclient_cert.p12");

  到打的war包下BOOT-INF/classes!/static/apiclient_cert.p12是能找到該文件的,但是程序運行時卻沒找到。后來百度了一下,發現在線下運行時,是能到本地磁盤里找到該資源的。但是到線上該文件是存在於war包文件資源里,而不是真實存在於磁盤路徑上。

    //1.通過getResourceAsStream()指定要加載的文件與當前類所在路徑是一致的,從而獲取到文件流
InputStream stream = getClass().getClassLoader().getResourceAsStream("static/apiclient_cert.p12"); File targetFile = new File("apiclient_cert.p12"); try {
//將讀取到的類容存儲到臨時文件中,后面就可以用這個臨時文件訪問了   FileUtils.copyInputStreamToFile(stream, targetFile); }
catch (IOException e) { e.printStackTrace(); }

 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM