2017-07-27 88 views
0

我有一個Spring Boot應用程序,我嘗試將它部署到.war以從Tomcat服務器運行它。.war的相對路徑如何工作?

在此之前,我部署到一個可執行文件.jar,一切正常。

在應用程序中,我需要讀取.json文件並讀取目錄,它們的位置以相對方式給出。當部署到.jar時,我會將該文件放在與.jar相同的文件夾中。我會訪問它:./branchMap.json。該目錄也將與jar相同的文件夾中,我可以這樣訪問它:./patches

現在,當我部署到.war時,我將應用程序放置在Tomcat中的webapps中,並將json文件和文件夾放置在webapps中。當我運行應用程序時,它能夠讀取json文件,但無法讀取/ patches文件夾。

這是怎麼發生的?我已經看到Tomcat試圖加載/ patches文件夾作爲應用程序,在tomcat管理器中列出。這如何幹擾試圖讀取訪問該文件夾的應用程序?部署到戰爭的應用訪問相對路徑的方式有什麼不同嗎?

回答

0

從屬性文件和屬性文件中讀取paches文件夾位置,您可以提及補丁文件夾的完整路徑。

+0

這不是一個解決方案,因爲我希望能夠在不同的機器上部署該jar – dannemp

+0

在這種情況下,你可以去集中配置。對於不同的機器,你可以在集中配置服務器中創建具有相同路徑的補丁文件夾。 –

+0

是的,我可以這樣做,但我的問題是關於爲什麼只在部署到戰爭時發生這種情況的原因,爲什麼當作爲獨立jar運行時,可執行jar工作在 – dannemp