我有一个 Java Web 应用程序 ( myapp.war
),我想将其部署到 Ubuntu ( 软件包 ) 提供的 Tomcat 中tomcat6
。这可以通过将其放入目录myapp.jar
中来实现webapps
。这样就行了。
现在,我的应用程序必须将一些数据存储到本地文件。我的想法是写入用户主目录或当前工作目录。但在 Ubuntu 10.04 上,用户是tomcat6
,其主目录是/usr/lib/tomcat6/
,当前工作目录是/var/lib/tomcat6/
。两者都属于root
。因此无法写入。
那么 Web 应用程序应该将其文件存储在哪里?
答案1
我在 Launchpad 上找到了解决方案。/var/lib/tomcat6/webapps/
是可写的。这意味着以下内容有效:
File myFile = new File("webapps/myfile.txt");
答案2
Tomcat 可以在任何有权限的地方写入文件。您应该亲自决定将文件写入何处。这在很大程度上取决于数据的性质。例如,您可以写入目录/var/www/yourapp/files
。对于 Tomcat webapps 来说,没有通用路径来存储此类文件。