java的程序会保存在哪_Java Web应用程序应将数据存储在哪里?

问题描述

通过将我的Java Web应用程序(myapp.war)放入Ubuntu 10.04上的Tomcat上的webapps目录中进行了部署。

该应用程序需要在文件中保存一些数据。但是,正在运行Tomcat(tomcat6)的用户没有对主目录/usr/share/tomcat6/的写访问权,也没有对当前工作目录/var/lib/tomcat6/的写访问权,因为两者均属于root。

那么,Web应用程序应将数据存储在哪里?我希望它不是webapps目录中提取的档案。可以很容易地将其删除。可以配置Tomcat,而不提取.war文件。这样就不会有提取的密码。

也许/var/lib/tomcat6/应该属于用户tomcat6,这是Ubuntu中的错误吗?

最佳办法

如果文件的持久保存时间不必超过servlet上下文的life-cycle,则servlet容器为每个servlet上下文提供一个专用的临时目录,由javax.servlet.context.tempdir属性指定。

3.7.1 Temporary Working Directories

The convenience of a temporary storage directory is required for each servlet context. Servlet containers must provide a private temporary directory per servlet context and make it available via the javax.servlet.context.tempdircontext attribute. The object associated with the attribute must be of type java.io.File

次佳办法

Witek在回答自己的问题时说/var/lib/tomcat6/webapps/ is writable-至少是在安装他的Ubuntu版本时。在我的RHEL 5.2系统上,甚至不存在/var/lib/tomcat,因此没有可写或不可写的webapps子目录,这导致了我的答案。

问:Java Web应用程序应将数据存储在哪里?答:无论您在何处配置它来存储其数据。

在web.xml中将位置配置为或在myApplication.properties文件中。

我可以将其放置在框上所需的位置,SysAdmins可以将其放置在生产系统上所需的位置。

您稍后可以改变主意。

您不需要符号链接(以前这些符号链接已经在我身上神奇地消失了,从而破坏了系统。)

您可以具有几组测试数据,并且只需将配置指向所需的任意一组即可。

您可以将其放在有磁盘空间的任何地方。

稍后您将改变主意。

第三种办法

我在启动板上找到了解决方案。 /var/lib/tomcat6/webapps/是可写的。这意味着以下工作:

File myFile = new File("webapps/myfile.txt");

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值