JAX-RS アプリケーションの要求および応答での JSON コンテンツの使用

JSON (JavaScript Object Notation) は、RESTful サービスが取り込みおよび作成を実行する共通メディア形式です。JavaScript のオブジェクト・リテラル表記に基づいたこの単純なデータ交換形式を使用して、データを交換できます。

このタスクについて

JSON は、プログラミング言語に影響を受けない一般的なデータ・フォーマットです。複数の Web ブラウザーおよび Dojo などの JavaScript ライブラリーは JSON をサポートします。WebSphere® は、Jackson ライブラリーと JavaScript Object Notation (JSON4J) ライブラリーをサポートしています。

Jackson ライブラリーは、XML (StAX) プル型パーサー・テクノロジーのストリーミング API に基づく JSON プロセッサー (パーサーとジェネレーターの両方) です。 このライブラリーには、基本的な JSON 読み取りと書き込み (構文解析と生成)、ノード・ベースの完全なツリー・モデル、オブジェクトと JSON 間のデータ・バインディングの機能が備わっています。

Jackson ライブラリーを使用して、JSON データを Plain Old Java™ Object (POJO) と Java Architecture for XML Binding (JAXB) オブジェクトの間でアンマーシャルしたりマーシャルしたりできます。 Jackson を使用して JSON データを処理するには、クラス・パスに Jackson ライブラリーを含める必要があります。 Jackson をクラス・パスに追加してから、POJO オブジェクトと JAXB オブジェクトを使用して、要求と応答のメッセージ本体を表します。 Jackson は、本製品のサーバー・サイドのランタイムに組み込まれています。

JSON4J ライブラリーは、Java 環境内で使用する一連の JSON 処理クラスの実装です。 JSON4J ライブラリーは、JSON データとしてレンダリングするデータを構成し、操作するための単純な Java モデルを提供します。

JSON4J ライブラリーを使用して JSON データを出力できます。サポートされたエンティティー・タイプとして JSON4J タイプを使用するには、JSON4J ライブラリーをクラスパスに含める必要があります。 JSON4J をクラスパスに追加した後、JSON4J ライブラリーからの JSONObject クラスおよび JSONArray クラスを要求と応答のメッセージ本体の表記タイプとして使用できます。 JSON4J は、本製品のサーバー・サイドのランタイム環境に含まれています。

手順

  1. 開発環境を構成します。
    1. JAX-RS アプリケーションの開発を開始する前に、クラスパスに JAX-RS ライブラリーを追加して、 開発環境をセットアップする必要があります。
  2. JAX-RS Web アプリケーションのリソースを定義します。
    1. リソースは、RESTful サービスの基本ビルディング・ブロックです。リソースは、静的または動的な更新データを含むことができます。オンライン書店アプリケーションのリソースの例には、書籍、書店からの注文、およびユーザーのコレクションが含まれます。ご使用のアプリケーションのリソースを識別することにより、サービスをさらに便利で開発しやすいものにできます。
  3. JAX-RS アプリケーションを構成します。

    お客様のニーズに応じて、複数の方法で JAX-RS アプリケーションを構成できます。 Java Platform, Enterprise Edition (Java EE) 6 の機能を活用するには、アノテーション・スキャン機能を使用します。 アノテーション・スキャンを使用することにより、JAX-RS javax.ws.rs.core.Application サブクラス を省略したり、javax.ws.rs.core.Application サブクラスの定義を最低限にすることができます。 あるいは、IBM® JAX-RS サーブレットおよびフィルターで有効な機能を 使用したい場合は、IBM JAX-RS サーブレットまたはフィルター を指定できます。

    JAX-RS バージョン 1.1 構成メソッドの 1 つを使用して、 アプリケーションで javax.ws.rs.core.Application サブクラスを省略したり、 すべての JAX-RS クラスを検索して使用するように JAX-RS ランタイム環境に通知するために 空のクラス・セットを返す javax.ws.rs.core.Application サブクラスをアプリケーションで 使用したりすることができます。 このメソッドは、アプリケーションの作成時に、関連するすべての JAX-RS クラスを 手動で javax.ws.rs.core.Application サブクラスに追加しなければならない手間を省略したい場合などに使用します。

    特定の IBM JAX-RS サーブレットおよびフィルターを 指定することにより、特定の IBM JAX-RS の動作を 確実に利用することができます。例えば、IBM JAX-RS フィルターは、 同じ URL パターンの JAX-RS リソースと JavaServer Pages (JSP) ファイルを使用する Web アプリケーション を開発する際に役立ちます。

    オプションの web.xml ファイルの使用をサポートする JAX-RS V1.1 構成メソッドがありますが、セキュリティー制約またはロールを指定したい場合や、web.xml ファイルと共に使用可能な他の機能を利用したい場合には、web.xml ファイルに情報を指定する必要があります。

    JAX-RS アプリケーションを構成するには、以下の 3 つの方法のうち 1 つを選択します。

    • JAX-RS 1.1 メソッドを 使用して JAX-RS アプリケーションを構成する

      アノテーション・スキャン機能 または JAX-RS 1.1 構成メソッドを使用したい場合に、この方法を使用します。 アノテーション・スキャン機能を使用することにより、アプリケーションの可搬性を向上させたり、 構成コードの量を最小化したり、アプリケーション・コードを変更せずにアプリケーションを 動的に変更したりすることができます。

    • JAX-RS サーブレット用 web.xml ファイルの構成

      動作を変更するためにサーブレット初期設定パラメーターを使用して有効にする機能を指定したい場合、 および IBM JAX-RS サーブレットを確実に取得したい 場合に、この方法を使用します。サーブレットを使用する場合は、ベース URL に付加されるサーブレット・パスを web.xml ファイル内に 定義できます。

    • JAX-RS フィルター用 web.xml ファイルの構成

      さまざまな URL パターンの JSP、その他のサーブレットおよびフィルター、 および JAX-RS リソースがあり、フィルターを使用したい場合に、この方法を使用します。 有効な URL を示すフィルターを定義し、それらの URL でフィルターが起動されるように web.xml ファイルを 構成することができます。

  4. 要求エンティティーと応答エンティティーに JSON コンテンツを使用してリソース・メソッドを実装します。
    1. RESTful サービスでは、JSON 形式を使用してコンテンツの取り込みおよび作成を実行できます。
  5. JAX-RS Web アプリケーションをアセンブルします。
    1. JAX-RS Web アプリケーション用に Java クラス・ファイルを開発し、JAX-RS サーブレットを使用可能するために web.xml ファイルを編集したら、アプリケーションをアセンブルできます。Web アプリケーションを Web アプリケーション・アーカイブ (WAR) パッケージにアセンブルします。必要に応じて、WAR パッケージをエンタープライズ・アーカイブ (EAR) パッケージにアセンブルできます。
  6. JAX-RS Web アプリケーションをデプロイします。
    1. JAX-RS Web アプリケーションをアセンブルしたら、Web アーカイブ (WAR) パッケージまたはエンタープライズ・アーカイブ (EAR) パッケージを、アプリケーション・サーバー上にデプロイする必要があります。

タスクの結果

要求および応答の JSON コンテンツを処理する JSON4J ライブラリーを使用する JAX-RS Web アプリケーションを開発し、アプリケーション・サーバー上にデプロイできました。


トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_jsoncontent
ファイル名:twbs_jaxrs_jsoncontent.html