#eclipse里dynamic web project的使用
轉http://code.google.com/p/helloj2ee/wiki/dynamic_web_project#如何創建dynamic_web_project項目
如何創建dynamic web project項目
本文的演示是從本地文件創建dynamic web project,從svn檢出的同時創建dynamic web project於此類似。我們推薦使用解壓版的tomcat6.x版本,來作為服務器。可以到http://tomcat.apache.org 下載。 在創建動態web項目之前,我們先創建一個Server用於在eclipse里運行和調試web項目。
創建一個Server
創建Server是為了方便在eclipse里啟動和調試dynamic web project,我們以創建一個使用tomcat的server為例,基本按照截圖按部就班就可以了:
- 新建一個Server項目
- 我們選擇tomcat6,並關聯到我們的tomcat目錄
- 在下圖中,如果你的項目里有dynamic web project的項目,那么會自動列在左側的框里,你可以選擇其中一個或幾個到右邊的框里,在finish后,eclipse會把這些項目注冊給該Server,即在該Server的server.xml里添加類似
<context docBase="simplejee\WebContent" path="/simplejee">
</context>
的內容。如果你熟悉tomcat對這個一定很熟悉。
- 完成后你會看到如下的一個窗口,如果看不到的話,可按照第二幅圖的樣子打開相應的view。
- 這樣一個server就配好了。點擊上圖中綠色的運行按鈕,就可以使用Server下的配置運行你的tomcat了。
創建dynamic web project
eclipse本身的dynamic web project類似MyEclipse的web project,如果在MyEclipse里創建dynamic web project的話,需要在創建新項目時,選中Show All Wizards:
- 和創建其他項目類似,還是從file->new->other->web->dynamic web project,
- 填寫項目的相關信息。在該界面里有個project contents,模式是在你的workspace下,你也可以隨便選擇其他位置,或則是已經存在的文件。我自己是習慣把項目文件放在其他單獨的文件夾里。
注意這里的內容,如果你是用的MyEclipse的web project的話,content directory的值默認為WebRoot,你需要修改為WebContent,因為我們的腳本都是按照WebContent來寫的。
點擊確定后,可能會彈出下面這個警告框,是問你是否切換到和該項目類型關聯的JavaEE視圖上。所謂視圖簡單的講就是view的組合。![]()
- 項目創建這樣就完成了,在你左側項目欄里會出現如下內容(具體顯示方式和你是在什么view里查看是相關的,圖示是Navigator下的顯示形式)
- 你還可以根據你的習慣修改一下項目的相關配置,我自己習慣將java文件編譯到WebContent\WEB-INF\classes下,這個你可以點擊Source的tab,修改default output folder的內容。另外注意下圖中的Apache tomcat v6.0這是引入的Server對應的一堆jar包,而Web App libraries是指你項目下的WebContent/lib下的所有的jar包,當你在WebContent/lib下添加新jar的時候,就不需要自己Add Jars了。
- 在項目根目錄上右鍵,然后run as,選run on server,就可以在eclipse里運行該項目了。
斷點調試
在創建了Server和Dynamic Web Project后,調試java代碼,只要在運行項目時選擇Debug As就可以了,另外還有種方式是Remote Java Project。
這種方式需要再給tomcat寫個腳本
debug.bat
SET CATALINA_OPTS=-server -Xdebug-Xnoagent-Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888
call startup.bat
小技巧
如下,會持續補充中:
- 當你的項目比較大又想在eclipse里啟動tomcat來運行的話,常常會因為超時而失敗,這時可以雙擊Servers的view里的某個Server,這時會出現,下圖上半部分的內容,可以在Timeouts里將超時時間加長