2017-04-10 100 views
0

我正在構建一個允許用戶將一些文件上傳到服務器的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文件無關。

有人可以告訴我我做錯了什麼,得到這個錯誤,我該如何解決它?

+0

試着去除家中前面的'/'。在你找到的答案中,給定的路徑從根開始('C:\ ...'),所以它是絕對的。但顯然你使用的是一個相對路徑,從文件夾'home'開始。 – IQV

+0

@IQV,我按照建議和檢查去掉了家中的領先/盈虧。但結果沒有改變 – Nilushan

回答

0

那麼一個很好的解決方案是使用配置服務器。當你設置它時,你可以指導你的屬性文件從它的配置。這很容易設置,這是一個鏈接到文檔(它很短,所以你應該快速理解它)link。您也可以將其用於其他war/jar文件。