分析 Jetty
0. 前言
- jetty的安裝方法與介紹
- 以下皆以用本人所最簡化的jetty包做說明,並使用jetty 5.14 版本
- 所用的Jetty套件為 Jetty_demo , 檔案下載為 點我下載jetty_demo
1. Jetty
- jetty 最簡單的啟動方式為
java -jar start.jar etc/jetty.xml
分析:
java -jar 為java 執行一個包好後的執行檔所用的命令 start.jar start.jar 為java函式包,裡面鑲嵌呼叫jetty的code 於 ch 3 說明 etc/jetty.xml jetty.xml是jetty的設定檔 於 ch 4 說明
- 當然手冊上有寫說jetty還可以用 java org.mortbay.jetty.Server etc/jetty.xml 此方法看似很簡潔,然而卻要設定好完整的classpath 於environment內才可以正常執行。
2. Jetty 目錄結構分析
最簡化的jetty目錄結構(jetty-demo)如下:
etc/ | jetty 設定檔 | 設定檔為xml結構 |
ext/ | jetty的外部函式庫 | 無此目錄會引發LogFactory error |
lib/ | jetty基本函式庫 | |
logs/ | 日誌檔 | 一開始資料夾內可以為空 |
start.jar | 開始檔 | |
webapps/ | 網頁目錄 |
3. 分析 start.jar
jar 檔的結構如下
META-INF/ | MANIFEST.MF | 3.1 |
start/ | ||
Main.class | 3.2 | |
Monitor.class | ||
Classpath.class | ||
start.config | 3.3 |
由於start.jar 內的 MANIFEST.MF 已經告知java : Main class 在哪,因此java會直指Main.class來執行。
看似Main.class是整個jetty的驅動程式,然而Main.class卻可以看成一個分析start.config的parser,
start.config 記載著jetty_home, classpath 該怎麼設定等等重要的參數,Main.class在去分析,
分析完後,再搭載著這些重要的資訊,以驅動jetty最主要的核心檔 org.mortbay.jetty.Server
(包在 $jetty-demo/lib/org.mortbay.jetty.jar內)
3.1 MANIFEST.MF
Manifest-Version: 1.0 Main-Class: start.Main
告知java,main function在哪
3.2 Main.class
3.3 start.config
4 分析 jetty.xml
Last modified 15 years ago
Last modified on Aug 13, 2009, 12:19:18 PM