編譯Tomcat源碼與Eclipse匯入__tomcat

來源:互聯網
上載者:User

http://www.cnblogs.com/huangfox/archive/2011/10/20/2218970.html


1.Tomcat源碼下載

    apache-tomcat-6.0.41-src.zip

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

    apache-ant-1.8.4

3.IDE——選用Eclipse3.7。

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

第一步:

解壓Tomcat源碼,例如解壓到E:\study\tomcat\apache-tomcat-6.0.41-src

第二步:

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

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

2.2)要讓ant工作起來,我們還要將apache-tomcat-6.0.41-src檔案夾中的build.properties.default重新命名為build.properties,

並且開啟它,修改base.path=E:/study/tomcat/basepath

2.3)下載依賴項目,進入命令控制台,進入目錄E:\study\tomcat\apache-tomcat-6.0.41-src,執行命令:ant download

2.4)等依賴項目下載好後,就可以編譯tomcat了。執行命令:ant。當編譯完成後,我們可以查看目錄E:\study\tomcat\apache-tomcat-6.0.41-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

ant.jar  在apache-ant-1.8.4目錄下有

jaxrpc.jar

http://download.csdn.net/download/vincentlyf/4992240

(java APIs for XML-Based Remote Procedure Call,JAX-RPC)將XML 類型轉換為 Java 類型,以確保 Web 服務客戶機和基於 Java 的應用程式之間能夠進行平穩的資料交換。


org.eclipse.jdt.core_3.5.2.v_981_R35x.jar

http://download.csdn.net/download/fan008boy/2652497


wsdl4j-1.5.1.jar      http://download.csdn.net/download/ttnuli/5459539


匯入後就清爽了。

第四步:

在eclipse中啟動tomcat。

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

run as:在Arguments的VM arguments中設定

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

然後就可以啟動了。

note: E:\study\tomcat\apache-tomcat-6.0.41-src\output\build下的lib、conf、webapps複製到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了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.