我正在構建一個允許用戶將一些文件上傳到服務器的Java Web應用程序。由於.war文件可能部署在具有不同文件系統層次結構的服務器中,因此我想提供.properties文件,並讓服務器管理員在初始系統配置期間定義保存這些文件的位置。然後我的應用程序會讀取這個.properties文件來確定上傳文件的存儲位置。嘗試讀取java .war以外的.properties文件時出錯
當搜索一種方法來做到這一點,我遇到了堆棧溢出類似的問題,並試圖按照下面的答案給出的指示。
https://stackoverflow.com/a/8941774
我想嘗試一下這個解決方案是否可行。 所以我編輯我/usr/share/tomcat8/conf/context.xml文件,包括<Context> </Context>
標籤
<Environment name="config" value="/home/nilushan/temp/"
type="java.lang.String" override="false"/>
之間以下我創建了一個文件中命名yourfile.properties在/ home/nilushan/TEMP和也複製給定的Java代碼並執行它。
但是我不斷收到「jndi lookup中的異常」消息。在更改代碼以打印異常之後,這是我得到的
「jndi lookup中的異常:javax.naming.NameNotFoundException:在此上下文中沒有綁定名稱[config]。無法找到[config]。」
從錯誤信息我知道這與不能讀取context.xml文件中的內容有關,與yourfile.properties文件無關。
有人可以告訴我我做錯了什麼,得到這個錯誤,我該如何解決它?
試着去除家中前面的'/'。在你找到的答案中,給定的路徑從根開始('C:\ ...'),所以它是絕對的。但顯然你使用的是一個相對路徑,從文件夾'home'開始。 – IQV
@IQV,我按照建議和檢查去掉了家中的領先/盈虧。但結果沒有改變 – Nilushan