このチュートリアルでは、NetBeans 7でAjaxベースのHTMLページをクライアントとして使用して、RESTful Webサービスを消費する方法について説明します。 XML形式またはJSON形式という2種類のAJAXレスポンスのレンダリング方法について概要を説明します。
約30分
Ajaxはテクノロジーではなく、過去数年間で広く普及したユーザー・インタフェースの新しい設計方法です。 AjaxはAsynchronous JavaScript + XMLの略です。 Ajaxではサーバーとの非同期通信がサポートされます。 Ajaxを使用すると、Webページ全体を再ロードせずにWebページの一部分をレンダリングできます。 XMLHttpRequestオブジェクトを使用して、水面下でサーバーとのデータ交換を行います。
このチュートリアルで実施する内容は、次のとおりです。
このチュートリアルで使用するサンプル・アプリケーションは、特定のプレーヤーIDに基づいてプレーヤーの詳細情報を取得するものです。 プレーヤーIDは問合せ文字列としてWebサービスに渡されます。このWebサービスはその後、プレーヤーの詳細情報をXML/JSON形式で送信します。 詳細情報には、プレーヤーの名、姓、Jersey番号が含まれます。
このチュートリアルを始める前に、パート1の前提条件を満たし、チュートリアルを完了していること。PlayerServerプロジェクトがNetBeansで実行中であること。
ここでは、RESTful Webサービスを消費するクライアントとして動作する、AjaxベースのHTMLページを作成する方法について説明します。このRESTful WebサービスはPlayerServerアプリケーションによって生成されます。
|
. |
RESTful Webサービスの作成に使用するPlayerServerアプリケーションが実行中であることを確認します。 実行中でない場合はサーバーを起動し、次の手順を実行します。 a. 「Projects」タブを開きます。 b. 「PlayerServer」プロジェクトを右クリックします。 c. 「Run」を選択します。 これによってGlassFishサーバーが起動され、アプリケーションがデプロイされます。
アプリケーションのデプロイが成功すると、ブラウザにデフォルトのjspページ(URL:http://localhost:8080/PlayerServer/)が開かれ、"Hello World"と表示されます。
|
|---|---|
|
. |
HTMLファイルを作成するには、「PlayerServer」プロジェクトを右クリックし、「File」→「New」→「HTML...」を選択します。
|
|
. |
以下の手順を実行します。 a. 以下の詳細情報を入力します。 File Name:AjaxRestClient Folder:フォルダ名を入力する必要はありません。 HTMLファイルはデフォルトでWeb Pagesフォルダの下に作成されます。
b. 「Finish」をクリックします。 コード・エディタにAjaxRestClient.htmlが表示されます。 |
|
. |
AjaxRestClient.htmlのbodyセクションに以下のコードを追加します。 <table> <input type="button" value="Get Details" onclick="getMessage()"/> <tr>
このコードによって必要なUIが作成されます。 |
|
. |
「AjaxRestClient.html」を右クリックして、「Run File」を選択します。
|
|
. |
ブラウザに表示された出力内容を確認します。
|
ここでは、AJAXベースのHTMLページにXML形式のRESTful Webサービス出力をレンダリングする方法について説明します。
|
. |
Ajaxリクエストを作成するために、AjaxRestClient.htmlページのheadセクションに以下のコードを追加します。 <script language="javascript" type="text/javascript"> function createRequest() { if (request == null)
createRequest()メソッドは、リクエスト・オブジェクトを作成するために使用します。 リクエスト・オブジェクトは、Internet Explorerの場合はActiveObject、その他のブラウザの場合はXMLHttpRequestとなります。 |
|---|---|
|
. |
AjaxRestClient.htmlページにgetMessage()メソッドを追加します。 function getMessage()
このメソッドでは、以下の処理を実行します。
|
|
. |
AjaxRestClient.htmlページにhandleResponse()メソッドを追加します。 function handleResponse() { for(var i=0; i<fnames.length; i++) {
このメソッドは、サーバーからのレスポンスを処理するために呼び出されます。 handleResponse()メソッドはXML文書を解析し、取得した値をHTMLのテキスト・ボックスに割り当てます。 |
|
. |
「AjaxRestClient.html」を右クリックして、「Run File」を選択します。
|
|
. |
出力内容を確認します。 以下の手順を実行します。 a. プレーヤーIDとして3を入力します。 b. 「GetDetails」をクリックします。
このボタンのイベント・ハンドリング中に、getMessage()メソッドが呼び出され、このメソッドが前述のとおりAJAXリクエストを開始します。 プレーヤーID 3のプレーヤーの詳細情報が取得され、HTMLページに表示されます。
|
|
. |
XMLレスポンスを確認します。 以下の手順を実行します。 a. ブラウザにhttp://localhost:8080/PlayerServer/resources/com.playerentity.player/3というURLを入力します。 b. プレーヤーID 3のプレーヤーの詳細情報が、ブラウザにXML形式で表示されます。
|
ここでは、AJAXベースのHTMLページにJSON形式のRESTful Webサービス出力をレンダリングする方法について説明します。
|
. |
以下の手順を実行します。 a. 「PlayerServer」プロジェクトを選択し、「RESTful Web Services」フォルダを展開します。
|
|---|---|
|
. |
@GETアノテーションを確認します。このアノテーションは、任意のMIMEタイプでHTTP GETリクエストをリソースに送信するときに呼び出されます。 このメソッドにより、XML形式とJSON形式の両方のレスポンスが生成されます。 ただし、ここではJSON形式のレスポンスのみを必要としているため、@producesアノテーションを修正する必要があります。
|
|
. |
@producesアノテーションの"application/xml"文字列を削除します。この修正により、このメソッドでHTTP GETリクエストに対してJSON形式のレスポンスを生成することを示します。
|
|
. |
projectsペインで「PlayerServer」プロジェクトを選択します。 次に右クリックして、「Clean and Build」を選択します。
|
|
. |
右クリックして「PlayerServer」プロジェクトを選択し、「Deploy」を選択します。
|
|
. |
以下の手順を実行します。 a. projectsペインで「PlayerServer」プロジェクトを選択します。 b. 右クリックして「open」を選択します。コード・エディタにAjaxRestClient.htmlが表示されます。
|
|
. |
JSONレスポンスを処理するようにhandleResponse()メソッドを修正します。 function handleResponse() { }
|
|
. |
「AjaxRestClient.html」を右クリックして、「Run File」を選択します。
|
|
. |
出力内容を確認します。 以下の手順を実行します。 a. プレーヤーIDとして3を入力します。 b. 「GetDetails」をクリックします。
プレーヤーID 3のプレーヤーの詳細情報が取得され、HTMLページに表示されます。
|
|
. |
JSONレスポンスを確認します。 以下の手順を実行します。 a. ブラウザにhttp://localhost:8080/PlayerServer/resources/com.playerentity.player/3というURLを入力します。 b. レスポンスをダウンロードして保存します(現時点ではブラウザしか使用していないため、リクエストを開始したクライアントはありません)。
c. レスポンスをメモ帳で開きます。プレーヤーID '3'のプレーヤーの詳細情報がJSON形式で返されています。
|
このチュートリアルでは、NetBeans 7でAjaxベースのHTMLページをクライアントとして使用して、RESTful Webサービスを消費する方法について説明しました。 XML形式またはJSON形式という2種類のAJAXレスポンスのレンダリング方法について概要を説明しました。
AJAXレスポンスのレンダリングの比較: XML形式とJSON形式
XML形式:
長所: XMLのもっとも重要な長所は、もっとも読み取りやすい形式であるという点です。
短所: データをHTMLページに追加するために必要となるJavaScriptが非常に冗長になります。
JSON形式:
長所:
短所:
この形式は人間にとっては読み取りにくく、すべてのコンマ、引用符、括弧を正しく配置する必要があります。 また、デバッグが困難です。
著者
![]()
|
Copyright © 2011, Oracle and/or its affiliates. All rights reserved |