将我的Java web应用程序(myapp.war
)部署到Ubuntu10.04上Tomcat上的webapps
目录中。
此应用程序需要将一些数据保存在文件中。但是运行Tomcat (tomcat6
)的用户没有主目录/usr/share/tomcat6/
的写访问权限,也没有当前工作目录/var/lib/tomcat6/
的写访问权限,因为它们都属于root
。
那么,web应用程序应该将数据存储在哪里呢?我希望它不是webapps目录中解压出来的归档文件。这可能很容易被意外删除。可以配置Tomcat,而不是提取.war文件。那么就不会再有提取的数据了。
也许/var/lib/tomcat6/
应该属于用户tomcat6
ant,这是Ubuntu的一个bug吗?
发布于 2010-07-02 02:34:46
我在Launchpad上找到了解决方案。/var/lib/tomcat6/webapps/
是可写的。这意味着,以下内容可以正常工作:
File myFile = new File("webapps/myfile.txt");
发布于 2010-07-02 02:17:36
我认为这取决于您正在处理的数据类型。大多数情况下,数据进入数据库只是因为执行CRUD既快又容易。如果你想存储本地化的用户配置,并且你不关心它的可移植性,也许你可以在user.home下存储,我为我的一个项目这样做了,它工作得很好。尽管如此,我真的不认为在这方面有任何最佳实践,数据库似乎是最明显的选择,因为你可以在它上面做很多不同的任务,而且它们中的大多数都是免费的。:)
发布于 2010-07-02 01:58:28
我还没有看到任何关于您应该在本地存储此类数据的具体指导-可能是因为您通常会将此类数据存储在数据库中。
当我需要存储像这样的快速和脏数据时,我将它存储在一个专门用于该数据的文件系统上,以便将它与其他可能会被其他活动占用的区域隔离开来。到目前为止,这种方法还没有出现任何问题。此外,如果它很重要,请确保将其存储在要备份它的位置:)
https://stackoverflow.com/questions/3160343
复制相似问题