[英]Load config file from a war
我有一個Maven項目,我試圖將其打包為戰爭和罐子。 作為我的應用程序/ servlet初始化的一部分(取決於我是運行jar還是戰爭),我需要讀取一個名為server.ini
的文件。 我把文件放在src/main/resources/server.ini
並嘗試加載它,如下所示:
System.class.getResourceAsStream("server.ini");
但是,這總是會導致null
。 我究竟做錯了什么?
server.ini
文件應位於資源目錄的根目錄中。
通過將它放在webapp
您可以通過http
使文件可用,但是您需要在classpath
上訪問它,這意味着您應該將它放在資源目錄中。
web.xml
或context.xml
很有可能更適合你想要做的事情,但......
嘗試把server.ini
在WEB-INF/classes
,或做一些像這樣 。
問題是我使用的是具有非限定路徑的System類加載器,所以它期望在java.lang
包中找到我的server.ini
。
由於我的文件在src/main/resources
,我應該使用當前類的類加載器,使用絕對路徑:
getClass().getResourceAsStream("/server.ini")
這適用於戰爭和罐子。
“ 在Java中加載資源的首選方式 ”問題對資源加載有很好的解釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.