Jersey情報
Jerseyとは
Jersey(ジャージー)は、RESTfulなWebサービスを実現することに特化した、Javaのオープンソースのフレームワークです。Jerseyは、Java EEの標準仕様の一つであるJAX-RS(JSR 370: Java API for RESTful Web Services)で定義されたJava APIを実装しているだけでなく、独自に拡張したAPIやユーティリティも提供しています。これにより、RESTfulなサービスとクライアントの開発を簡素化します。Jerseyは、開発者のニーズに合わせてJerseyを拡張できるように、多数の拡張SPI(Service Provider Interface)も公開しています。
Jerseyは、Java EEやGlassfishと同様にOracleからEclipse Foundationに寄贈されました。
Jerseyプロジェクトの目標は、次のように要約できます。
- JAX-RS APIに追従し、GlassFishに同梱できる商用稼働レベルの品質の参照実装であり続けること
- Jerseyを拡張するためのAPIを提供すること
- JavaとJava仮想マシンを利用してRESTful Webサービスを簡単に構築できるようにすること
主な特徴
Jerseyは、JAX-RSの参照実装であるため、特定の製品やベンダーに依存しない標準的なRESTful Webサービスを構築可能です。また、アノテーションを使った分かりやすく、シンプルな実装のため、開発生産性や保守性を高めることができます。
例えば、次のようなクラスを作成し、
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
@Path("test_service")
public class JaxSampleService {
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("test")
public String sayHello(@QueryParam("param") String param) {
return "Test param: " + param;
}
}
/test_service/testのパスにparam=okayのクエリストリングを付加して、GETメソッドでリクエストを送信すると、「Test param: okay」という文字列を含むContent-Type: text/plainのレスポンスが返ります。
$ curl http://localhost:8080/test_service/test?param=okay
Test param: okay
また、Jerseyは、WebLogic、Glassfish、PayaraなどのJavaコンテナに内包されており、これらを使ってRestfulなWebサービスを開発する場合は、追加でインストールすることなく使用できます。
Jerseyは、Javaベースの洗練されたクライアントAPIを提供しており、JAX-RSに準拠したサービスだけではなく、それ以外のRESTfulなWeb サービスを呼び出すことができます。
例えば、以下のような単純なコードで特定のURLにGETリクエストを送信し、そのページのコンテンツを取得することができます。
Client client = Client.create();
WebResource resource = client.resource("http://www.openstandia.jp/");
String html = resource.get(String.class);
また、Jersey2.x以降ではコンポーネントのライフサイクル管理とDI(Dependency Injecton)にJavaのDIフレームワークであるHK2が組み込まれました。これによりエンドユーザーアプリケーションがHK2パブリックAPIを使用して、HK2バインディングを直接操作し、アプリケーションコンポーネントのライフサイクル管理とDIをカスタマイズできるようになっています。
類似プロダクト
Jerseyは、JavaにおけるJAX-RSの参照実装です。
Jerseyの他にもオープンソースJAX-RS実装として、Restlet、JBoss RESTEasy、Apache Winkなどがあります。Jerseyは、これらの中でも特に、理解しやすく使いやすい点が特徴と言えます。
開発に役立つドキュメントやサンプルも充実しているので、Javaの技術者であれば容易に開発ができます。
動作環境
JerseyはさまざまなJava HTTPサーバー、サーブレットコンテナ上で動作します。詳細に関しては公式ページのChapter 4. Application Deployment and Runtime Environmentsを参照してください。また、Jerseyはバージョンにより、必要なとなるJavaのバージョンが異なります。Javaとの互換性については、公式ページの2.1. Java SE Compatibilityを参照してください。
Jerseyのライセンス
バージョン2.28以降のJerseyのライセンスは、「EPL 2.0」(Eclipse Public License v2.0)とクラスパス例外付き「GPL v2」(GNU General Public License v2.0)のデュアルライセンスに基づいて公開されています。
2.27以前のバージョンは、「CDDL v1.1」(COMMON DEVELOPMENT AND DISTRIBUTION LICENSE v1.1) とクラスパス例外付き「GPL v2」(GNU General Public License v2.0)のデュアルライセンスに基づいて公開されています。
製品ダウンロード
Jerseyは、Mavenの中央リポジトリーからダウンロードできます。バージョン2.28以降のJerseyのソースコードは、以下からダウンロードできます。
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
サポート対象
Spring Framework
スプリングフレームワーク。Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。
-
Java
ジャバ。サンマイクロシステムズ社(2010年にオラクル社に吸収合併)により開発されたプログラミング言語、及びその動作環境である Java VM(ジャバ仮想マシン) です。