Eclipse導入Tomcat源碼

想要研究下Tomcat的體系結構或者源碼,最好將Tomcat的源碼導入到ide中,編寫實例進行代碼跟蹤(debug)。java

這裏參考了網上一些資料,將本身操做過程記個流水帳。apache

準備:tomcat

1.Tomcat源碼下載eclipse

這個裏下載tomcat-6.0.33源碼。ide

2.ant安裝,用於編譯tomcat的源碼。測試

ant下載解壓後將其bin添加到系統環境path中。ui

3.IDE——選用Eclipse3.7。spa

 

=================================debug

第一步:server

解壓Tomcat源碼,例如解壓到D:\tomcat\apache-tomcat-6.0.33-src

第二步:

2.1)使用ant編譯tomcat源碼,在編譯以前須要下載相關的依賴項目。咱們並不知道編譯須要哪些依賴項目,怎麼辦?

讓ant來幫忙吧!咱們只須要準備一個存放這些依賴項目的地方,例如d:\tomcat\basepath

2.2)要讓ant工做起來,咱們還要將apache-tomcat-6.0.33-src文件夾中的build.properties.default重命名爲build.properties,

而且打開它,修改base.path=d:\tomcat\basepath

2.3)下載依賴項目,進入命令控制檯,進入目錄D:\tomcat\apache-tomcat-6.0.33-src,執行命令:ant download

2.4)等依賴項目下載好後,就能夠編譯tomcat了。執行命令:ant。當編譯完成後,咱們能夠查看目錄D:\tomcat\apache-tomcat-6.0.33-src

能夠發現裏面多了一個文件夾:output

output文件夾的結構以下:

咱們會發現這個結構和從安裝包裏解壓出來的tomcat結構一致。

進入bin,啓動tomcat成功,就說明——ant編譯tomcat成功了!

 

=====================================

將tomcat源碼導入eclipse。

第一步:

在eclipse裏新建一個java項目,例如:tomcat6。

第二步:

import->file system

在From directory選擇tomcat源碼,選擇java和test(若是你須要測試的話選擇test),以下圖:

在into folder中選擇咱們剛新建的tomcat6,finish。

note:將java、test設置成source folder,java build path ->Source->Add folder...->選擇java和test。

如今項目結構以下圖所示:

第三部:導入jar包。

上面那些不爽的紅叉是由於缺乏jar的緣由,咱們如今須要那些jar包呢?

test須要junit.jar,這個直接用eclipse裏面的便可。

java中須要:

  • ant.jar

  • jaxrpc.jar

  • org.eclipse.jdt.core_3.3.1.v_780_R33x.jar

  • wsdl4j-1.5.1.jar

導入後就清爽了!

第四步:

在eclipse中啓動tomcat。

找到類:org.apache.catalina.startup包中的Bootstrap類。

run as:在Arguments的VM arguments中設置

-Dcatalina.home="d:\output\build"

而後就能夠啓動了!

 

==========================================

問題:

爲何要設置-Dcatalina.home="d:\output\build"?

首先說明output是什麼——它就是ant編譯出來的output文件夾,你們能夠試試刪除裏面的東西看仍是否能夠成功啓動。

若是不配置這個參數又會發生什麼狀況呢?刪除-Dcatalina.home="d:\output\build",報錯:

2011-10-20 14:49:35 org.apache.catalina.startup.ClassLoaderFactory validateFile

警告: Problem with directory [D:\myWorkSpace\tomcat6\lib], exists: [false], isDirectory: [false], canRead: [false]

2011-10-20 14:49:35 org.apache.catalina.startup.ClassLoaderFactory validateFile

警告: Problem with directory [D:\myWorkSpace\tomcat6\lib], exists: [false], isDirectory: [false], canRead: [false]

2011-10-20 14:49:35 org.apache.catalina.startup.Catalina load

警告: Can't load server.xml from D:\myWorkSpace\tomcat6\conf\server.xml

2011-10-20 14:49:35 org.apache.catalina.startup.Catalina load

警告: Can't load server.xml from D:\myWorkSpace\tomcat6\conf\server.xml

2011-10-20 14:49:35 org.apache.catalina.startup.Catalina start

嚴重: Cannot start server. Server instance is not configured.

從中能夠看出在項目的根目錄下沒有lib文件夾,沒有conf文件夾,conf中沒有server.xml,從而不能實例化server。

那麼按照他的提示作,在啓動就ok了!

 

關於安裝tomcat時配置CATALINA_HOME和CATALINA_BASE的做用,請你們指點。

相關文章
相關標籤/搜索