如何在linux debian OS中的tomcat web服务器上部署数据文件

时间:2011-10-10 06:57:14

标签: linux tomcat

我有一个使用JSP和Servlet开发的Web应用程序。此Web应用程序部署在使用Debian Linux作为操作系统且Tomcat版本为5.5.31的服务器上。由于此应用程序需要一些数据文件,因此在使用独立的Java应用程序完成设置时,将自动创建这些数据文件。此应用程序部署在另一台计算机上。此设置已完成。由于我不太了解Debian Linux以及我的应用程序在哪里,所以我对部署这些自动生成的数据文件有一些疑问,如下所示

  1. 当我创建我的Web应用程序的.war文件并使用Tomcat Manager部署它时。所以我不知道我的申请到底在哪里。我不知道确切的路径。我怎么找到它?

  2. 是否可以为部署在Debian Linux服务器上的此Web应用程序创建FTP?我认为如果可以创建FTP,那么我将使用我的独立Java程序直接连接到FTP,并且可以轻松地创建文件以及其他文件和目录操作。

1 个答案:

答案 0 :(得分:1)

如果您部署了战争,则应用程序不在文件系统的任何位置。大多数服务器都会在某处解压缩战争,但你不应该依赖于那里。

我可以想到几个选项:

  1. getServletContext()。getAttribute(“javax.servlet.context.tempdir”)获取应用程序的临时目录,然后通知外部程序该位置并将文件放在某处知道的位置。< / p>

  2. 在应用程序之外安排“知道位置”,例如/ tmp / somewhere或/ var / cache / your-app / somewhere来放置此类文件。 (注意:/ tmp通常在启动linux机器时清理)

  3. 关于从远程计算机将文件放到服务器上:您可以让客户端将文件直接上传到您的webapp(类似于Apache HTTPClient会帮助您),这意味着您可以不用“知道”位置“上面。如果你想在应用程序之外执行此操作,我会避免FTP(由于安全性)。相反,我会选择scp(安全副本)。

    编辑:稍微在线之间阅读,你在数据文件中提到“设置”。如果这是一个在应用程序运行后没有更改的配置文件,您可能会发现在服务器上执行“部署”步骤更方便,该步骤只需获取设置文件并在部署之前将其添加到战争中。例如,“蚂蚁战争”就足够了。然后,您可以使用getClass()。getResourceStream(..)等来访问该文件。