2009-04-24 65 views
9

我曾經在我的機器上單獨運行Tomcat。我有一個Ant腳本,可以重建我的項目,在本地部署它,然後重新啓動Tomcat。這一切工作正常,但我無法調試Eclipse內的Web應用程序。如何正確管理Eclipse內部的Tomcat Web應用程序?

所以我學會了如何安裝Tomcat的Eclipse內,得到了我的web應用程序的運行。現在問題是我不完全理解如何以這種方式管理它。 Eclipse設置爲根據更改自動構建項目,但這些更改似乎並不總是反映在Web應用程序中。有時我必須手動構建項目並手動「清理」服務器才能反映更改。

是介於有規則有關如何管理這個設置?例如,如果我只更改一個JSP,那麼它會自動同步?如果我更改了一個servlet類,那麼我需要手動重建該項目?這些規則是否一致,或者我應該每次都手動重建和清理?

我真的很感激,如果有人可以給我最好的做法規則或指向我一個很好的資源,學習如何管理這個環境。

PS。我使用Eclipse 3.4.1的Java EE包和Tomcat V5.5

回答

5

您可以按照您提及的方式使用Eclipse和Tomcat。首先是如何設置它的基礎知識:

  1. 在Servers視圖中建立一個新的Tomcat服務器指向您TOMCAT_HOME
  2. 確保您的項目是一個Eclipse「網絡工程」。您可能需要創建一個虛擬文件並複製.settings中的一些文件(查看wst文件)。
  3. 右鍵單擊服務器視圖中的服務器和「添加和刪除項目...」以將項目添加到服務器,將項目部署到Tomcat。

您可以運行服務器並對其進行測試,就像在Eclipse之外運行Tomcat一樣。如果以調試模式運行服務器,則可以設置斷點並逐步執行代碼。

至於何時您需要重新啓動服務器的Eclipse通常是有關自動部署的變化相當不錯的。幾乎不需要重新啓動對jsp頁面的更改。如果你改變一個類,它會自動部署更改(通常),如果你改變方法的主體。如果您更改類的簽名(添加或刪除方法或更改其參數),則幾乎總是需要重新啓動。對配置文件(web.xml或類似文件)的任何更改也幾乎總是需要重新啓動。

要重新啓動,只需點擊服務器視圖中的「調試」或「運行」按鈕。所有更改將被重新部署到Tomcat中。

有一點需要注意的是,在默認配置中,TOMCAT_HOME中的「webapp」目錄將不會被使用。相反,它將使用Eclipse工作空間目錄下的文件夾(WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmp0)。

0

通常你應該發佈應用程序,以獲得最新的變化,不要忘了與文件系統第一的情況下,extrernally修改您的文件進行同步。 您可以指定修改後自動重新加載應用程序,請在服務器配置項目的server.xml中查找自動重新加載屬性。當設置爲true時,tomcat將自動重新加載你的應用程序。順便說一下,這並不總是一個好主意。 修改後的JSP應該自動工作,不需要重新啓動應用程序。

0

如果更改已加載和使用的類(添加/刪除成員,改變方法簽名等)的結構代碼的更改將不會體現出來。這不是一個日食問題,而是一個JVM問題。如果您進行簡單的代碼更改(例如現有方法內的邏輯更改),那麼您的更改將在編譯並重新部署類後生效。 無論如何,如果你改變一個公共常量,你必須重建你的項目。

0

我發現了兩件事情重要的是理解:

  • 的Eclipse如果文件被Eclipse之外改變不會自動實現。點擊刷新項目就可以做到這一點,F5也是如此。您也可以將設置更改爲自動刷新,但是,它不會立即檢測到更改(我的直覺認爲延遲達10秒)

  • 使用服務器具有將文件「發佈」爲Tomcat的概念。這通常會在任何更改後的一秒鐘內自動發生。更改許多類可能會導致許多服務器重新加載,如果上下文重新加載需要一些時間(如同複雜的Spring應用程序一樣),則可能會導致拖動。所以我改變了一個設置不自動發佈(雙擊服務器實例)

相關問題