解決request.getSession().getServletContext().getRealPath("/")為null問題


今天把程序部署到服務器,發現異常,FileNotFound異常,很快定位到getServletContext().getRealPath("/");返回空的問題。這個問題通常是傳遞的虛擬路徑不對或者使用war包導致的。而我的程序傳遞的路徑肯定正確,並且部署的時候對.war包做了解壓。對這個問題上網搜搜了n編,始終找不到問題所在,而部署子本機是完全正確的。

仔細梳理了一下找到了一個線索:我部署到服務器的時候,我等了半天,服務器沒幫我把war解壓,於是自己把war解壓了,而解壓之后沒有把war包刪掉,是不是服務器啟動的程序是war包里面的,而不是我解壓之后的呢?於是我就rm掉war包,然后開始測試,結果結果同樣如此,感覺比較失望,失望之時想起了服務器可能有編譯緩存,於是重啟服務器,問題終於解決。

使用String rootPath = this.getClass().getResource("/").getPath().replaceAll("^\\/", ""); 代替


免責聲明!

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



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