Jetty情報
Jettyとは
Jetty (ジェティ)は、100%Javaで開発されたHTTPサーバ兼Java Servletコンテナで、軽量であるという特徴があります。
一般的なHTTPサーバが、主にブラウザ等を介して利用者にHTMLなどを提供するのに対し、JettyはEclipseやApache Solrなどのソフトウェアの一部に組み込まれているほか、さまざまなデバイスにも組み込まれてマシン間通信機能を提供するためにも利用されています。
JettyはJNDI、JMX、OSGi、JAAS、非同期サーブレット、HTTP/1.1, 2, 3対応、WebSocket、その他多くの機能をサポートしています。
同様のJava ServletコンテナであるTomcatと比べると、起動が速い(メモリのフットプリントが小さい)、Jetty単独で静的コンテンツとサーブレットが提供できる、非同期HTTPサーバの特徴を活かして、短時間に大量のクライアントからの要求に応えることができるなどの利点があります。
主な機能
主な機能は以下のとおりです。
Webサーバ機能 |
Apache HTTP Serverのように静的コンテンツを送信します。 |
---|---|
Java Servletコンテナ |
標準Javaサーブレットによる動的コンテンツの生成を行います。 |
JNDI対応 |
JNDI APIに対応しており、データソースやディレクトリサービスなどにJetty上で名前を設定し、プログラム上では設定した名前でオブジェクトを利用することが可能です。 |
JMX対応 |
JMX APIに対応しており、JConsoleなどを利用してリモートからJettyの状態監視やJetty上で稼動しているアプリケーションの状態監視を行うことが可能です。 |
OSGi対応 |
Apache FelixなどのOSGiコンテナにモジュールとしてバンドルさせて動作させることが可能です。 |
JAAS対応 |
JAASに対応しており、アプリケーション自体に変更を加えることなく、新規または更新された認証技術をアプリケーションに組み込むことが可能です。 |
JSP対応 |
JSPに対応しており、追加設定・モジュールを組み込むことでJSPの実行が可能です。 |
非同期サーブレット |
クライアントからのリクエストに対し、サーブレットの処理完了を待たずにレスポンスを返すことが可能です。 |
非同期HTTPクライアント |
Jetty自身から外部のサーバに向けて、HTTPリクエストを非同期に送受信することが可能です。 |
HTTP/1.1, 2, 3対応 |
HTTP/1.1, 2はもちろん、HTTP/3もサポートしており、より高速かつ安定した通信を提供します。 |
WebSocketサーバ |
ブラウザとの双方向通信を実現するWebSocket規格のサーバとして動作します。 |
主な特徴
主な特徴は以下のとおりです。
100%Java |
100%Javaで実装されたHTTPサーバ兼Java Servletコンテナです。 |
---|---|
軽量 |
ファイルサイズが約14MBの単一のJarファイルとして動作させることが可能です。 |
高いスループット |
非同期HTTPサーバや、HTTP/2, 3の技術によって、大量のクライアントからの応答に耐え、高いスループットを実現することが可能です。 |
柔軟な拡張機構 |
プラガブル(各機能を必要に応じてOn/Offすることができる)な機構を持っており、各機能を独自のプラグインとして拡張することが可能です。 |
類似プロダクト
OSS製品ではApache Tomcatが同様の機能を提供しています。
ユースケース
Jettyを利用している代表的なWebサービスやソフトウェアには、次のようなものがあります。
Apache ActiveMQ、Alfresco、Apache Solr、Eclipse、Equinox、Apache felix、Apache Geronimo、Google App Engine、Apache Hadoop、MongoDB Management Service
動作環境
前提となる動作環境は、以下のとおりです。
OS
- Javaが動作するすべてのOS
Java
- Java Runtime Environment(JRE)1.8以降
Version |
Protocols |
Servlet |
Java |
---|---|---|---|
12.0.x |
HTTP/1.1 (RFC 7230), HTTP/2 (RFC 7540), HTTP/3 (RFC 9114), WebSocket (RFC 6455, JSR 356), FastCGI, JakartaEE Namespace, JavaEE Namespace |
3.1, 4.0, 5.0, 6.0 |
17 |
12.1.x |
HTTP/1.1 (RFC 7230), HTTP/2 (RFC 7540), HTTP/3 (RFC 9114), WebSocket (RFC 6455, JSR 356), FastCGI, JakartaEE Namespace, JavaEE Namespace |
3.1, 4.0, 5.0, 6.0, 6.1 |
17 |
※Jetty 12.0.x 以前のバージョンはサポート終了または非推奨となっております。
Jettyのライセンス
Jettyのライセンスは、Apacheソフトウェア財団 (ASF) によって規定されたApache License, Version 2.0およびEclipse Foundationによって規定されたEclipse Public License2.0のデュアルライセンスを採用しています。
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
サポート対象
Nginx
エンジンエックス。Apache HTTP Serverに次ぐ利用率で人気急上昇中の高速・高性能Webサーバです。
-
サポート対象
Apache HTTP Server
アパッチエイチティーティーサーバ。世界中で最も人気の高いwebサーバソフトウェアの一つです。
-
サポート対象
Apache Tomcat
アパッチトムキャット。JavaサーブレットやJSPを実行するためのソフトウェア