2

我的 Java JSP 应用程序需要在 Tomcat Web 服务器上存储永久文件。目前我将文件保存在系统的“/ temp”文件夹中。但是这个文件夹会不时被清除。此外,当前的解决方案是硬编码的,这使得它不太灵活(例如,当移动到另一台服务器时)。

我想现在是否有在此配置中定义访问永久目录的最佳实践。详细地说,定义应用程序文件目录的最佳位置在哪里,我如何从我的 java 应用程序中访问它?此设置的目标是在 (a) 更新应用程序(即放置一个新的 war 文件)和 (b) 从一台服务器移动到另一台服务器和操作系统(例如 Unix、Windows、MacOS)时尽量减少工作量。

到目前为止,我对该主题所做的研究表明,以下是解决方案(可能包括其他):

1.) 使用 Tomcat 安装目录中的自定义子目录。

  • 如果我通过 war 文件在 tomcat 上部署新版本,文件会怎样?
  • 我在哪里定义要从我的 Java 应用程序中访问的目录?

2.) 在文件系统的单独目录中。

  • 在不了解系统的情况下,哪些是好的位置或获取位置的方法?
  • 我在哪里定义要从我的 Java 应用程序中访问的目录?

感谢您的意见!

4

1 回答 1

1

本质上,您正在以某些文件的形式创建“数据库”。在 Java EE 和 servlet 容器的世界中,唯一真正通用的方法是通过 JNDI 配置这样的资源。Tomcat 和其他容器没有“为 Web 应用提供持久存储空间”的概念。如果 webapp 需要持久存储,则需要通过 JNDI 或 -D 或您通过向其发布内容来告诉它的内容对其进行配置。没有可以借鉴的惯例或标准做法。

您可以按照约定选择文件系统路径名并记录该约定(例如 Linux 上的 /var/something,Windows 上类似的东西)。但你不一定会与其他人正在做的事情保持一致。

于 2012-06-11T15:39:17.107 回答