Changes between Version 8 and Version 9 of waue/2009/0812


Ignore:
Timestamp:
Aug 13, 2009, 12:17:15 PM (15 years ago)
Author:
waue
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • waue/2009/0812

    v8 v9  
    88
    99 
    10  = 1. 前言 =
     10 = 0. 前言 =
     11
    1112 * [wiki:waue/2009/0811 jetty的安裝方法與介紹]
    1213 * 以下皆以用本人所最簡化的jetty包做說明,並使用jetty 5.14 版本
     14 * [http://trac.nchc.org.tw/cloud/wiki/Jetty-Demo 所用的Jetty套件為 Jetty_demo ] , 檔案下載為 [http://trac.nchc.org.tw/cloud/raw-attachment/wiki/Jetty-Demo/jetty_demo.tar.gz 點我下載jetty_demo]
    1315
    14  = 2. Jetty 分析 =
     16 = 1. Jetty =
    1517
    16 最簡化的jetty目錄結構可以如下:
     18 * jetty 最簡單的啟動方式為
     19
     20{{{
     21java -jar start.jar etc/jetty.xml
     22}}}
     23
     24分析:
     25
     26 || java -jar || 為java 執行一個包好後的執行檔所用的命令 || ||
     27 || start.jar || start.jar 為java函式包,裡面鑲嵌呼叫jetty的code || 於 ch 3 說明||
     28 || etc/jetty.xml || jetty.xml是jetty的設定檔 ||於 ch 4 說明||
     29
     30 * 當然手冊上有寫說jetty還可以用 '''java org.mortbay.jetty.Server etc/jetty.xml ''' 此方法看似很簡潔,然而卻要設定好完整的classpath 於environment內才可以正常執行。
     31
     32 = 2. Jetty 目錄結構分析 =
     33
     34最簡化的jetty目錄結構(jetty-demo)如下:
    1735
    1836||etc/ ||jetty 設定檔  || 設定檔為xml結構 ||
     
    2341||webapps/ ||網頁目錄 || ||
    2442
    25 
    26 jetty的最簡單的啟動方式為
    27 
    28 {{{
    29 java -jar start.jar etc/jetty.xml
    30 }}}
    31 
    32  * start.jar 為java函式包,裡面鑲嵌呼叫jetty的code
    33  * jetty.xml是jetty的設定檔
    34  * 當然手冊上有寫說jetty還可以用 '''java org.mortbay.jetty.Server etc/jetty.xml ''' 此方法看似很簡潔,然而卻要設定好完整的classpath 於environment內才可以正常執行。
    35 
    36  == 2.1 分析 start.jar  ==
     43 = 3. 分析 start.jar  =
    3744
    3845jar 檔的結構如下
    3946
    40 ||META-INF/ || MANIFEST.MF || 2.1.1 ||
     47||META-INF/ || MANIFEST.MF || 3.1 ||
    4148||start/ || || ||
    42 || || Main.class|| 2.1.2||
     49|| || Main.class|| 3.2||
    4350|| || Monitor.class|| ||
    4451|| || Classpath.class|| ||
    45 || || start.config|| 2.1.3 ||
     52|| || start.config|| 3.3 ||
    4653
    47  === 2.1.1 MANIFEST.MF ===
     54由於start.jar 內的 MANIFEST.MF 已經告知java : Main class 在哪,因此java會直指Main.class來執行。
     55
     56看似Main.class是整個jetty的驅動程式,然而Main.class卻可以看成一個分析start.config的parser,<br>
     57start.config 記載著jetty_home, classpath 該怎麼設定等等重要的參數,Main.class在去分析,<br>
     58分析完後,再搭載著這些重要的資訊,以驅動jetty最主要的核心檔 org.mortbay.jetty.Server <br>
     59(包在 $jetty-demo/lib/org.mortbay.jetty.jar內)
     60
     61 === 3.1 MANIFEST.MF ===
    4862{{{
    4963#!text
    5064Manifest-Version: 1.0
    51 
    5265Main-Class: start.Main
    5366}}}
     
    5568告知java,main function在哪
    5669
    57  === 2.1.2 Main.class ===
     70 === 3.2 Main.class ===
    5871
    5972[wiki:waue/2009/0812d/Main_java Main.java]
    6073
    6174
    62  === 2.1.3 start.config ===
     75 === 3.3 start.config ===
    6376[wiki:waue/2009/0812d/start_config start.config]
    6477
    65  == 2.2 分析 jetty.xml ==
     78 = 4 分析 jetty.xml =
     79
    6680 * [wiki:waue/2009/0812d/jetty_xml jetty.xml]
    6781 * [wiki:waue/2009/0812d/webdefault_xml webdefault.xml]