Java

Jettyのダウンロードと起動 #jettyjp

1. Jettyとは
Jettyは軽量、ハイパフォーマンスのサーブレットコンテナです。

JettyはMavenとの親和性が高く、コンテナをいちいちダウンロードせずともpom.xmlに依存関係を記載しておくだけで簡単に起動できて検証用途に大変便利。
またいち早くWebSocketsやSPDYに対応するなど先進的な機能も備えています。

以前から開発で便利に使わせてもらっているのですが、今後運用環境でも積極的に利用していこうと思いちょっと調べています。今twitter4j.orgもJettyで動いています。

Jettyプロジェクトは以前はcodehausにありました(古いコンポーネントは今もcodehausにある)が現在はEclipseに移管されています。

・本家サイト
Jetty
・ダウンロード
download.eclipse.org/jetty/
・最新ドキュメント
Jetty : The Definitive Reference
・ソースコード
eclipse/jetty.project
・バグ
Bug List

ライセンスはやや複雑でコンポーネントによってApache Software License 2.0(にちょっとコメントがついてる)だったりEcipse Public License 1.0だったり。

最新安定版はJetty8.1で、Servlet3.0、WebSockets、Java 6に対応しています。
最新開発版はJetty9.0M3で、SPDYのサポートも追加されています。
What version do I use?

2. Jettyのダウンロードとディレクトリ構成
ダウンロードサイトよりjetty-distribution-9.0.0.M3.zipなど最新版をダウンロード、展開します。
展開すると以下のようなディレクトリ構成になっているのがわかります。

それっぽ名前がつくのでだいたい見当が付くと思いますが、以下のような配置になっています。



bin: 起動用スクリプト
etc: 設定ファイル
lib: ライブラリなど
license-eplv10-aslv20.html: ライセンス
logs: ログファイル
notice.html: 利用上の注意
README.txt: 基本的な使い方などの説明
resources: ログ設定
start.d: 設定追加ファイル(start.iniと一緒に読み込まれる)
start.ini: 設定ファイル
start.jar: 起動用jar
VERSION.txt: リリースノート
webapps: war置き場

3. Jettyの起動
起動は簡単。ディレクトリのトップをJETTY_HOME環境変数に指定してbin/start.sh start とするだけ。
デフォルトでは8080ポートでHTTPリクエストを受け付けます。

起動時のコンソール表示は以下の通り。

$ export JETTY_HOME=~/Downloads/jetty-distribution-9.0.0.M3
$ ./jetty.sh start
Starting Jetty: STARTED Jetty 2012年 12月 3日 月曜日 14時53分32秒 JST
14:53 ~/Downloads/jetty-distribution-9.0.0.M3/bin $ Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
WARNING: System properties and/or JVM args set. Consider using --dry-run or --exec
2012-12-03 14:53:33.802:WARN::main: test-realm is deployed. DO NOT USE IN PRODUCTION!
2012-12-03 14:53:34.058:INFO:oejs.Server:main: jetty-9.0.0.M3
2012-12-03 14:53:34.100:INFO:oejs.NCSARequestLog:main: Opened /Users/yusuke/Downloads/jetty-distribution-9.0.0.M3/logs/2012_12_03.request.log
2012-12-03 14:53:34.126:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/Users/yusuke/Downloads/jetty-distribution-9.0.0.M3/webapps/] at interval 1
2012-12-03 14:53:34.131:INFO:oejd.DeploymentManager:main: Deployable added: /Users/yusuke/Downloads/jetty-distribution-9.0.0.M3/webapps/javadoc.xml
2012-12-03 14:53:34.176:INFO:oejsh.ContextHandler:main: started o.e.j.s.h.ContextHandler@fc36edb{/javadoc,file:/Users/yusuke/Downloads/jetty-distribution-9.0.0.M3/javadoc,AVAILABLE}
2012-12-03 14:53:34.177:INFO:oejd.DeploymentManager:main: Deployable added: /Users/yusuke/Downloads/jetty-distribution-9.0.0.M3/webapps/test.xml
2012-12-03 14:53:34.258:INFO:oejw.WebInfConfiguration:main: Extract jar:file:/Users/yusuke/Downloads/jetty-distribution-9.0.0.M3/webapps/test.war!/ to /private/var/folders/jm/nkmsgj7n31jbf6xvssg13ymr0000gn/T/jetty-0.0.0.0-8080-test.war-_test-any-/webapp
2012-12-03 14:53:34.398:WARN::main: test webapp is deployed. DO NOT USE IN PRODUCTION!
2012-12-03 14:53:34.841:INFO:oejc.HttpClient:main: Started org.eclipse.jetty.client.HttpClient@3db43dd2
2012-12-03 14:53:34.846:INFO:TransparentProxy:main: TransparentProxy @ /test/javadoc-proxy to http://download.eclipse.org/jetty/stable-9/apidocs
2012-12-03 14:53:34.847:INFO:oejsh.ContextHandler:main: started o.e.j.w.WebAppContext@85fdc60{/test,file:/private/var/folders/jm/nkmsgj7n31jbf6xvssg13ymr0000gn/T/jetty-0.0.0.0-8080-test.war-_test-any-/webapp/,AVAILABLE}{/test.war}
2012-12-03 14:53:34.847:INFO:oejd.DeploymentManager:main: Deployable added: /Users/yusuke/Downloads/jetty-distribution-9.0.0.M3/webapps/async-rest.war
2012-12-03 14:53:34.865:INFO:oejw.WebInfConfiguration:main: Extract jar:file:/Users/yusuke/Downloads/jetty-distribution-9.0.0.M3/webapps/async-rest.war!/ to /private/var/folders/jm/nkmsgj7n31jbf6xvssg13ymr0000gn/T/jetty-0.0.0.0-8080-async-rest.war-_async-rest-any-/webapp
2012-12-03 14:53:34.955:WARN::main: async-rest webapp is deployed. DO NOT USE IN PRODUCTION!
2012-12-03 14:53:34.995:INFO:oejsh.ContextHandler:main: started o.e.j.w.WebAppContext@5ffdc730{/async-rest,[file:/private/var/folders/jm/nkmsgj7n31jbf6xvssg13ymr0000gn/T/jetty-0.0.0.0-8080-async-rest.war-_async-rest-any-/webapp/, jar:file:/private/var/folders/jm/nkmsgj7n31jbf6xvssg13ymr0000gn/T/jetty-0.0.0.0-8080-async-rest.war-_async-rest-any-/webapp/WEB-INF/lib/example-async-rest-jar-9.0.0.M3.jar!/META-INF/resources/],AVAILABLE}{/async-rest.war}
2012-12-03 14:53:34.995:INFO:oejd.DeploymentManager:main: Deployable added: /Users/yusuke/Downloads/jetty-distribution-9.0.0.M3/webapps/ROOT
2012-12-03 14:53:35.073:INFO:oejsh.ContextHandler:main: started o.e.j.w.WebAppContext@48729352{/,file:/Users/yusuke/Downloads/jetty-distribution-9.0.0.M3/webapps/ROOT/,AVAILABLE}{/ROOT}
2012-12-03 14:53:35.102:INFO:oejs.ServerConnector:main: Started ServerConnector@523e2446{HTTP/1.1}{0.0.0.0:8080}

Comments are closed.