トップ OSS紹介 Jersey

Jersey

NRIのOpenStandiaが提供するJersey最新情報

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
    サポート対象

    Spring Framework

    スプリングフレームワーク。Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。

  • Java

    Java

    ジャバ。サンマイクロシステムズ社(2010年にオラクル社に吸収合併)により開発されたプログラミング言語、及びその動作環境である Java VM(ジャバ仮想マシン) です。

オープンソースに関する様々な課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。