標籤:
轉自:http://tyrion.iteye.com/blog/1903608
以前看過Tomcat5的一部分原始碼,當時只看了個大概的啟動分析,後來看了《How Tomcat Works》這本書,講的還行,出版的較早,所以是基於Tomcat4的代碼的分析,Tomcat已經release到7了,很多後來添加的特性與新的實 現方式那本書裡面沒有涉及。下半年業餘時間的主要任務就是完成Tomcat7各個我感興趣的點的系列文章。
先說下我的源碼分析的環境搭建吧,用的是eclipse Juno Service Release 1,然後在tomcat官網下了tomcat7.0.42的源碼,這兩樣準備好之後便是搭建能夠運行源碼的調試環境了。
1.在eclipse中建立一個java項目,項目取名tc7.0.42
JRE選擇1.6的
其他設定預設
2.將下載的tomcat源碼包解壓開,並拷貝到Eclipse裡建立的項目根目錄下
注意,我這裡將源碼解壓開後的bin目錄重新命名成script之後才拷貝的,因為建立的Java項目中預設編譯後的檔案存放目錄是bin,這樣做防止編譯後的檔案覆蓋原來拷貝過去的內容。
3.將項目中預設的src目錄刪掉,java和test作為來源目錄
4.此時會發現項目中缺少一些類,需要手動將依賴的jar包添加進來,所以建立了一個depend-lib目錄
5.實際上缺少的這些jar包eclipse安裝目錄裡面都有,直接拷貝過來就可以了。
在eclipse安裝目錄的plugins目錄下,搜尋"ant.jar"
搜尋"javax.wsdl",選版本較高的那個jar包
搜尋"jaxrpc"
搜尋“jdt.core”選最大的那個jar包
6.把這些jar包加入到編譯路徑裡
7.此時發現test目錄下還有錯誤,實際上是因為test裡面用到了junit的一些註解,所以需要將junit4引進來
右擊項目,點擊Build Path,選擇Add Libraries
選擇junit
下一步,junit版本選擇JUnit 4
自此整個項目應該可以編譯了。
8.接下來運行項目根目錄下的build.xml,執行預設的ant任務,看看項目構建的有沒有問題。
控制台輸出"BUILD SUCCESSFUL"表示編譯構建成功。
9,此時重新整理整個項目,會發現多出一個output目錄
10.為了讓應用跑起來,可以檢查一下output\build\conf下是否已經有設定檔,這些檔案實際是從項目根路徑conf目錄下拷貝過來的。
11.找到BootStarp.java檔案,Debug前加入預設的catalina home路徑作為啟動參數。
BootStarp.java檔案右鍵選擇Debug As->Debug Configurations
路徑設定為output下build的絕對路徑。比如我自己的機器設定的值是-Dcatalina.home="E:\workspace\study\tc7.0.42\output\build"
這樣就可以在檔案中加入斷點Debug源碼分析了。
【轉】Tomcat7.0.42原始碼運行環境搭建