Jetty是一個開源的Servlet容器和應用服務器,它極度輕量級、高便攜性、功能強大、靈活和擴展性好,而且支持各種技術如SPDY、WebSocket、OSGi、JMX、JNDI和JAAS。Jetty對於開發來說非常便利,也已經廣泛地應用於生產環境。 本文詳述如何安裝和配置Jetty服務器,主要講述Jetty的獨立運行模式(Standalone)。隨後介紹它的配置選項,以及模塊化的架構。
Jetty有獨立運行模式、嵌入運行模式和Jetty Maven插件操作模式。本文是獨立運行模式為准。
兩個軟件:
1、Java 8u60
http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-windows-x64.exe
2、Jetty 9.3.2
http://eclipse.org/downloads/download.php?file=/jetty/stable-9/dist/jetty-distribution-9.3.2.v20150730.zip&r=1
早些的版本也可以用,但應該盡可能使用最新版本。
Jetty是一個跨平台的軟件,因此它的二進制發布包可適用於多個平台。
下載並解壓Jetty,進入Jetty的解壓目錄,執行命令:
java -jar start.jar
輸出如下:
D:\Programs\jetty9>java -jar start.jar 2015-09-02 16:31:36.273:INFO::main: Logging initialized @2060ms 2015-09-02 16:31:36.696:WARN:oejs.HomeBaseWarning:main: This instance of Jetty is not running from a separate {jetty.base} directory, this is not recommended. See documentation at http://www.eclipse.org/jetty/documentation/current/startup.html 2015-09-02 16:31:37.228:INFO:oejs.Server:main: jetty-9.3.2.v20150730 2015-09-02 16:31:37.302:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///D:/Programs/jetty9/webapps/] at interval 1 2015-09-02 16:31:37.701:INFO:oejs.ServerConnector:main: Started ServerConnector@3b81a1bc{HTTP/1.1,[http/1.1]}{0.0.0.0:8080} 2015-09-02 16:31:37.704:INFO:oejs.Server:main: Started @3491ms
用浏覽器訪問地址:http://localhost:8080/,可以看到
在Jetty應用服務器中部署war項目很簡單,只需把項目war包放入Jetty的webapps子目錄即可。你都無需重啟Jetty,Jetty會自動隨時監聽webapps目錄,自動完成新項目的部署。
bin:可執行腳本文件
demo- base:
etc:Jetty模塊定義的XML配置文件的目錄
lib:Jetty依賴的庫文件
logs:Jetty的日志目錄
modules:Jetty的模塊
resources:外部資源配置文件的目錄
webapps:項目WAR文件的目錄
還需要關心根目錄下的一個文件:start.d(Wondows系統是start.ini文件),它定義了Jetty的活動模塊。
Jetty默認使用8080端口,要讓它使用其他端口(如7070),那麼編輯start.d(Wondows系統是start.ini文件),找到jetty.http.port行,修改為:
## Connector port to listen on jetty.http.port=7070
保存並退出,再重啟Jetty。
Jetty下的webapps是默認的Web項目的部署目錄,如果想修改此目錄,可修改start.d配置文件(start.ini),移除以下行的注釋符號“#”
# jetty.deploy.monitoredDir=webapps
並把內容修改到你指定的目錄。保存並退出,再重啟Jetty。
Jetty運行於模塊化的架構之上,這意味著Jetty的功能是以模塊的方式運行的,比如HTTP、HTTPS、SSL、日志logging、JMX、JNDI、WebSocket等模塊。常用的模塊如HTTP、JSP和WebSocket模塊都是默認就激活的,而其他如HTTPS、JMX等模塊則需要手動激活。
Jetty的modules子目錄列出了所有的模塊,這些模塊是擴展名為.mod的文件,它聲明了要被激活的JAR文件(在Jetty的lib子目錄下)和XML配置文件(在Jetty的etc子目錄下),以及其他要作為模塊被激活的資源。
比如,可以查看modules子目錄的logging.mod文件的內容,可以看到,它聲明了配置文件是etc/jetty-logging.xml,所需的JAR包在lib/logging處,另外logs目錄是必須的。
[ xml] etc/jetty-logging.xml [files] logs/ [lib] lib/logging/**.jar resources/
激活Jetty的模塊有兩種方式。
java -jar start.jar --add-to-startd=logging
上面的命令會在Jetty目錄下創建logging.ini文件,相關的配置可以在此文件中查到。配置日志後,可以再次啟動Jetty,並可以查看到日志模塊是激活了的。
第二種方式是通過配置文件start.ini激活模塊
--module=logging
這種方式和前一種相似,且更常用。
正如上面提到的,mod文件聲明了相關的XML配置文件,在Jetty的etc子目錄下,可以通過這些配置文件來配置模塊。比如日志模塊聲明了相關的配置文件是jetty-logging.xml,可以通過修改此配置文件來調整日志。
最後補充一句,要想了解更詳細的內容,看官方文檔吧。
http://www.eclipse.org/jetty/documentation/current/index.html
來源:http://blog.csdn.net/chszs/article/details/48186139