このチュートリアルでは、NetBeans 7でRESTful Webサービスを構築する方法について説明します。
約30分
Representational State Transfer(REST)は、SOAPおよびWeb Services Description Language(WSDL)ベースのWebサービスに代わる、よりシンプルなWebサービス・モデルです。 RESTfulアプローチを使用したWebサービスの構築は、その軽量性により、一般的なWebサービス・モデルとなりつつあります。
RESTful Webサービスを使用すると、XMLやJSONなどの形式を使用してHTTP経由でメッセージを交換できます。 RESTful WebサービスはURIで識別可能なWebリソースの集合にすぎず、少数の操作(GET、PUT、POST、DELETE)を使用して処理できます。 RESTful APIを介してシステム・リソースを公開すると、柔軟にアプリケーションを統合できます。
RESTはアーキテクチャ上の方式であり、テクノロジーではありません。 Java仕様(JSR 311)では、JavaでRESTを実装する方法が説明されています。
この標準にはいくつかの実装があります。 公式なリファレンス実装はJerseyであり、開発と本番でもっとも広く使用されています。
NetBeans 7.1は、JSR-311(Java API for RESTful Web Services – JAX-RS)とJAX-RSのリファレンス実装であるJerseyを使用した、RESTful Webサービスの迅速な開発をサポートしています。 このIDEはサービスの構築とテストに加えて、これらのサービスにアクセスするクライアント・アプリケーションの作成をサポートします。 次に、NetBeansで提供されるRESTful機能を示します。
このチュートリアルで実施する内容は、次のとおりです。
Windowsプラットフォームでこのチュートリアルを実行するには、次のソフトウェアが必要です。 ソフトウェアは次に示す順序でインストールする必要があります。
Java DBデータベース・サーバーは、NetBeansに含まれています。 ここでは、Java DBをデータベース・サーバーとして使用します。 次の手順では、データベースplayerDBを作成します。
|
. |
NetBeansからJava DBデータベースを起動するには、次の手順を実行します。 a. 「Services」をクリックします。
Outputウィンドウに次の出力が表示され、DBサーバーが起動されたことが分かります。
JDKビルドの更新によって、DBserverバージョンがスクリーンショットとは異なる場合があります。 |
|---|---|
|
. |
playerDBデータベースを作成するには、次の手順を実行します。
a. 「Java DB」アイコンを右クリックし、「Create Database」を選択します。
b. 次のデータベース情報を入力します。
C. 「OK」をクリックします。
Databasesアイコンの下にデータベースが作成され、データベース接続が追加されます。
|
|
. |
新しく作成したplayerDBデータベースに接続するには、次の手順を実行します。 a. 「jdbc:derby://localhost:1527/playerDB」接続を右クリックします。 b. 「Connect」を選択します。
|
|
. |
playerDBデータベース内に表を作成し、データを挿入します。 a. NetBeansで「File」→「Open File」を選択します。
b. ファイル・ブラウザで、前提条件の項に示したファイルを解凍したディレクトリへ移動します。 「playersDB.sql」を選択します。 c. 「Open」をクリックします。 SQLエディタに自動的にスクリプトが表示されます。
d. SQLエディタのツールバーにあるConnectionドロップダウン・ボックスから「jdbc:derby://localhost:1527/playerDB」を選択します。 e. 「Run SQL」アイコンをクリックし、SQL文を実行します。
|
|
. |
データベースの内容を確認します。 a. Servicesウィンドウで、Databasesノードの下の「jdbc:derby://localhost:1527/playerDB」接続を展開します。
d. 「Tables」ノードを展開し、PLAYER表とTEAM表を表示します。
SQLコマンド・ウィンドウが開き、表に含まれるデータを表示するSQLコマンドが実行されます。
f. TEAM表に対しても、上記手順を繰り返します。 |
RESTful Webサービスを作成するには、Java Webアプリケーションのプロジェクトが必要です。 ここでは、デモ用のJava WebプロジェクトとしてPlayerServerを作成します。
|
. |
新しいJava Webプロジェクトを作成するには、「File」→「New Project」の順に選択します。
|
|---|---|
|
. |
Categories列から「Java Web」を選択し、Projects列から「Web Application」を選択して、「Next」をクリックします。
|
|
. |
次の手順を実行します。 a. プロジェクト名としてPlayerServerを指定します。
|
|
. |
Server and SettingsウィンドウでServerとしてGlassFish Serverが選択されていることを確認し、「Finish」をクリックします。
|
|
. |
サーバーを起動するには、次の手順を実行します。 a. 「Projects」タブを開きます。 b. 「PlayerServer」プロジェクトを右クリックします。 c. 「Run」を選択します。 これによってGlassFishサーバーが起動され、アプリケーションがデプロイされます。
アプリケーションのデプロイが成功すると、ブラウザにデフォルトのjspページ(URL:http://localhost:8080/PlayerServer/)が開き、"Hello World"と表示されます。
|
Javaを使用したRESTful Webサービスの作成では、データベースへの通信にJava Persistence APIを使用します。 NetBeans IDEを使用すると、同じプロセスでエンティティ・クラスとRESTful Webサービスを作成するか、または既存のエンティティ・クラスからRESTful Webサービスを作成できます。
ここでは、RESTful Services from Databaseウィザードを使用して、同じプロセスでエンティティ・クラスとRESTful Webサービスを生成する方法を紹介します。
|
|
RESTful Webサービスを生成するには、次の手順を実行します。 「PlayerServer」を右クリックし、「New」→「Other」→「Web Services」→「RESTful Web Services from Database」の順に選択します。 Database Tablesパネルに、New RESTful Web Serviceウィザードが開きます。
|
|---|---|
|
. |
Database Tablesウィンドウで「Data Source」を選択します。
|
|
. |
次に、ドロップダウン・リストから「New Data Source」を選択します。
a. Create Data Sourceウィンドウで次の情報を入力します。
b. 「OK」をクリックします。
Available Tables列にPLAYER表とTEAM表が表示されます。 c. 「Add All」をクリックします。 Selected Tables列にPLAYER表とTEAM表が表示されます。
d. 「Next」をクリックします。
|
|
. |
Entity Classesウィンドウで次の手順を実行します。 a. パッケージ名としてcom.playerentityを入力します。
b. 「Next」をクリックします。
|
|
. |
Generated Classesウィンドウで、デフォルト値のままにして「Finish」をクリックします。
|
|
. |
Rest Resources Configurationウィンドウで「OK」をクリックします。
|
|
. |
Projectsペインで次の手順を実行します。 a. 「PlayerServer」プロジェクトを選択して展開します。 b. プロジェクトの「source packages」を展開します。 c. 「com.playerentity」パッケージを展開します。 d. Player.javaおよびTeam.javaというエンティティ・クラスが作成されていることを確認します。
e. 「RESTful Web Services」フォルダを展開し、PlayerFacadeREST[com.playerentity.player]およびTeamFacadeREST[com.playerentity.team]というRESTful Webサービスが作成されていることを確認します。
生成されたこれら2つのWebサービスが、ここで使用するアプリケーションのRESTフロントエンドになります。 各エンティティに対して、すべてのエンティティ・インスタンスを表示したリソースが提供されています。 |
次の項では、Jerseyが提供するテスト・フレームワークで生成されたテストを使用して、RESTful Webサービスをテストする方法を紹介します。
|
. |
Webサービスのテスト・クライアントを生成するには、次の手順を実行します。
次のスクリーンショットに示すとおり、Configure REST Test Clientウィンドウが開きます。
|
|---|---|
|
. |
「Web Test Client in Project」を選択し、「Browse」をクリックします。
|
|
. |
a. Select Projectダイアログ・ボックスで、「PlayerServer」を選択して「OK」をクリックします。
b. Configure Rest Test Clientウィンドウが表示されたら、「OK」をクリックします。
サーバーが起動され、アプリケーションがデプロイされます。 デプロイが完了するとブラウザにアプリケーションが開き、それぞれのWebサービスに対するリンクが表示されます。
左側には、com.playerentity.teamとcom.playerentity.playerという一連のルート・リソースが表示されます。 |
|
. |
Webサービスをテストするには、次の手順を実行します。 a. リソース・ノードを1つ(例:com.playerentity.team)選択します。b. "Choose method to test"フィールドで「GET (application/json)」または「GET (application/xml)」を選択します。 c. 「Test」をクリックします。
テスト・クライアントからリクエストが送信され、Test Outputセクションに結果が表示されます。 テスト・クライアントでは、デフォルトでRaw Viewが表示されています。 d. 出力を確認します。 application/xmlリクエストに対するレスポンス。
application/jsonリクエストに対するレスポンス。
JSONがRESTベースのアプリケーションで広く使用されているのは、この形式がXMLよりもコンパクトであるためです。 また、JSONはJavaScriptをはじめとする、もっとも一般的なプログラミング言語で簡単に使用できます。 e. 同様に、「com.playerentity.player」ノードを選択し、Webサービスをテストします。
|
このチュートリアルでは、RESTful Webサービスの概要が提供されています。 NetBeansを使用すると、RESTベースのアプリケーションを素早く開発し、テストできることを学習しました。
著者
![]()
|
Copyright © 2011, Oracle and/or its affiliates. All rights reserved |