2012-08-05 64 views
1

我從Tomcat容器中運行應用程序。用戶單擊一個鏈接,這最終會導致助手類中的方法創建一個文件並將其保存到文件系統。當這個代碼從單元測試/ eclipse運行時,它將文件保存在應用程序的根目錄中,但是當它從Tomcat的瀏覽器運行時,該文件存儲在Tomcat的bin目錄中。使用Spring MVC保存文件

如何找到應用程序根目錄,以便我可以選擇從哪裏保存文件?

  • 我需要以編程方式查找根,因此可以將其部署到運行tomcat的其他環境中。

感謝

+0

爲什麼不使用像MongoDB這樣的面向文檔的數據庫? – 2012-08-05 20:58:10

回答

5

你不應該依靠你的Tomcat的安裝位置,你的應用程序不應該寫入到Tomcat的安裝文件夾中,從來沒有。對於在生產環境中運行Tomcat的用戶,Tomcat安裝甚至不可寫。

因此,只能使用完整(絕對)路徑。

+0

這個應用程序只是一個概念證明,可能會在其他開發者本地tomcat安裝上運行。我明白爲什麼這不利於生產。我可能會在配置文件中放入一個絕對路徑,這樣開發人員可以編輯它,以便他/她可以使用他們可以讀取/寫入的路徑。 – csilk 2012-08-05 20:24:14

2

要避免文件權限問題,您可能需要使用System.getProperty(「user.home」)來使用用戶的主目錄。這樣它就可以在環境和操作系統中一致地工作。

+0

這看起來是比我接受的更好的答案,但我最終在其他答案中實現了這些建議。感謝您的幫助。 – csilk 2012-10-23 12:25:41