2012-08-05 79 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