***.jar!\BOOT-INF\classes!\***.xml沒有此文件

***.jar!\BOOT-INF\classes!\***.xml沒有此文件

問題描述

最近遇見一個問題,在開發環境下正常運行的代碼,打包後不能正常運行,由於日誌被定製化了,問題很難定位,經過細(坑)心(爹)的排查,終於找到問題——配置文件沒有讀取。納尼!!

原因

這主要是因爲jar包是一個單獨的文件而不是文件夾,不能通過“file:***.jar!\BOOT-INF\classes!\jdbcType.xml”定位jar包內的資源。

解決

讀取本地文件如下所示:

SAXReader xmlReader = new SAXReader();
String path = URLDecoder.decode(this.getClass().getResource("/").getPath(), "UTF-8");
File xmlFile = new File(path + "/jdbcType.xml");
Document document = xmlReader.read(xmlFile);

改爲

SAXReader xmlReader = new SAXReader();
InputStream xmlFile = this.getClass().getResourceAsStream("/jdbcType.xml");
Document document = xmlReader.read(xmlFile);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章