2011-10-10 49 views
0

我有一個使用JSP和Servlet開發的Web應用程序。該Web應用程序部署在具有Debian Linux作爲操作系統的服務器上,Tomcat版本爲5.5.31。由於這些應用程序需要一些數據文件,所以這些數據文件將在使用獨立Java應用程序完成設置時自動創建。此應用程序部署在另一臺機器上。該設置完成。因爲我不知道很多關於Debian的Linux和在我的應用程序的推移,所以我必須在這些autimatically生成的數據文件爲我做了我的網站的.war文件,內容如下如何在linux上的tomcat web服務器上部署數據文件debian操作系統

  1. 的部署有些疑惑應用程序並使用Tomcat Manager進行部署。所以我不知道我的應用程序到底在哪裏。我不知道確切的路徑。我如何找到它?

  2. 是否可以爲這個部署在Debian Linux服務器上的Web應用程序創建FTP?我認爲,如果可以創建FTP,那麼我將使用獨立的Java程序直接連接到FTP,並且可以輕鬆地創建文件和其他文件和目錄操作。

回答

1

如果您部署了一場戰爭,則應用程序不在文件系統中的任何位置。大多數服務器都會在某處解壓戰爭,但是你不應該依賴於那個地方。

我能想到的幾個選項:

  1. getServletContext()方法的getAttribute(「javax.servlet.context.tempdir」)來獲取應用程序的temp目錄,然後告訴你這個位置的外部程序和將文件放置在某個已知位置的某處。

  2. 安排應用程序外的「知道位置」,例如/ tmp/somewhere或/ var/cache/your-app /放置此類文件的某處。 (注:/ tmp目錄通常被清除上一臺Linux機器的啓動)

至於從遠程計算機得到該文件到服務器:你可以讓你的客戶直接將文件上傳到你的web應用(東西像Apache HTTPClient會幫助你),這意味着你可以在沒有上述「知道位置」的情況下進行操作。如果你想在應用程序之外做這件事,我會避免FTP(由於安全)。相反,我會用scp(安全副本)。

編輯:在一行之間讀一點,你在數據文件中提到「設置」。如果這是一個應用程序運行後沒有更改的配置文件,您可能會發現在您的服務器上執行「部署」步驟會更方便,該步驟僅需要設置文件並在部署之前將其添加到戰爭中。例如,這很容易以「螞蟻戰爭」爲例。然後,您可以使用getClass()。getResourceStream(..)等來訪問文件。

相關問題