2013-10-14 37 views
0

所以我有一個GWT項目,並在服務器端,我試圖加載屬性文件到資源包,但是失敗。我不斷收到資源異常,因爲它找不到文件,但我嘗試過的每個選項都不起作用。我試着放置config.properties文件中war/config/config.properties以及src/config/config.properties(SO 2份),我已經打過電話了以下方式GWT資源包無法找到類路徑

TestGWTProject.war.config.config.properties 
TestGWTProject.war.config.config 
TestGWTProject.src.config.config.properties 
TestGWTProject.war.config.config 
src.config.config.properties 
src.config.config 

和我目前的調用是這個

ResourceBundle bundle = ResourceBundle.getBundle("config");

但沒有任何工作。理想情況下,我想將它保存在戰爭文件中,但是如果它必須留在src中沒有問題,但我希望在此時能夠找到它。我在俯視什麼?

回答

1

如果你把你的屬性放在src文件夾中(我認爲你應該這樣做),你需要給ResourceBundle一個類似的限定名,這樣當應用程序被編譯時,它可以在classes文件夾中找到屬性文件。

在我的情況,例如,我把它們放在我的源文件夾中,在一個包中。就像這樣:

的src /包/子包/ subsubpackage/propertiesFile.properties

當我要加載的特性,我用這個作爲標準名稱:

包。 subpackage.subsubpackage.propertiesFile

這是你想給你的應用程序的完整限定名稱一類的方法相同。這裏的關鍵是屬性文件被複制到WAR內的classes文件夾中。所以你的錯誤是告訴ResourceBundle查看src文件夾。

+0

有沒有一種方法可以從WAR文件中調用它?我認爲這種情況更加理想,因爲它限制了我圍繞部署的應用程序的類路徑尋找。無論如何,我標記你的答案是正確的,謝謝! – john

+0

我不確定。我認爲ResourceBundle需要在類路徑中包含屬性文件。如果你想從其他地方選擇文件,你需要手動加載文件(並且可能會給你其他問題......)IMO,它在類路徑中很方便。您可以創建一個名爲resources(或config)的根包,並將它們放在那裏 – manubot