10.5.3. RESTful Webサービス

10.5.3.1. 概要

JPA を利用するRESTful Webサービスのサンプルを提供します。サンプルの作成については [10.1. チュートリアル > 10.1.5. RESTful Webサービスの作成] を参照してください。

10.5.3.2. 構成

表10.5.3.2-1
プロジェクト名
プロジェクト説明
JpaRestfulSample
JPA を利用するRESTful Webサービスプロジェクト
JpaRestfulSampleClient
RESTful Webサービスのクライアントプロジェクト

10.5.3.3. 実行手順

  1. サンプルを実行する事前に、WebOTXのインストルパス下のdomains/domain1/lib/extにderbyのドライバーが存在することの確認してください。
  2. サンプルプロジェクト JpaRestfulSample.zip をインポートします。
  3. プロジェクトJpaRestfulSampleを右クリック、Jpaツール > persistence.xmlへDBを接続をクリックし、ポップアプした画面で、 新規Derby を選択、完了ボタンをクリックします。


    図10.5.3.3-1

  4. 新規Derbyを接続し、デフォルトスキーマでStudentテーブルが存在するを確認します。 テーブルが存在しない場合、プロジェクトのsrcフォルダー下のcreateTable.sqlを利用して、テーブルを作成します。 作成手順は10.1.1.3. テーブルの生成を参照してください。
    確認後、新規Derbyへの接続を切断してください。
  5. JpaRestfulSampleをWebOTXサーバーへ配備 します。
    (1) サーバービューでWebOTXサーバーを選択して、右クリック > プロジェクトの追加および除去 を選択します。 (WebOTXサーバーがない場合、 [ アプリケーション開発ガイド(概要) >; 1. Developer(with Developer's Studio) > 1.2. 環境設定 > 1.2.4. テスト用サーバの設定 > 1.2.4.2. WebOTXサーバーの新規作成 ] を参照してください。)
    (2) 開いた プロジェクトの追加および除去 画面に、JpaRestfulSampleを 構成プロジェクト に追加し、終了します 。
    (3) WebOTXサーバーの右クリック > 開始 を選択します 。
    (4) コンソールビューの「アプリケーションは JpaRestfulSample という名前で配備されました。」というメッセージを確認してください。
  6. Restful Webサービスをアクセスします。
    (1) ブラウザで「http://localhost/JpaRestfulSample/jaxrs/student」をアクセスします。以下の結果が表示されます。


    図10.5.3.3-2

    (2)クライアントからRestful Webサービスをアクセスします。
    クライアントプロジェクトのJpaRestfulSampleClient.javaを右クリックし、 実行 > Javaアプリケーションをクリックします。 コンソールで、以下の結果が表示されます。
    result(id=100):<?xml version="1.0" encoding="UTF-8" standalone="yes"?><student><id>100</id><mylock>10</mylock><name>WangHaidong</name><sport>BasketBall</sport></student>
    After Create(id=40,id=60), result(all):<?xml version="1.0" encoding="UTF-8" standalone="yes"?><students><student><id>100</id><mylock>10</mylock><name>WangHaidong</name><sport>BasketBall</sport></student><student><id>40</id><mylock>20</mylock><name>Shirley</name><sport>Dance</sport></student><student><id>60</id><mylock>30</mylock><name>Akasha</name><sport>Pain</sport></student></students>
    After Update(id=40), result(all):<?xml version="1.0" encoding="UTF-8" standalone="yes"?><students><student><id>100</id><mylock>10</mylock><name>WangHaidong</name><sport>BasketBall</sport></student><student><id>40</id><mylock>30</mylock><name>Valentine</name><sport>CQB</sport></student><student><id>60</id><mylock>30</mylock><name>Akasha</name><sport>Pain</sport></student></students>
    result(0~1):<?xml version="1.0" encoding="UTF-8" standalone="yes"?><students><student><id>100</id><mylock>10</mylock><name>WangHaidong</name><sport>BasketBall</sport></student><student><id>40</id><mylock>30</mylock><name>Valentine</name><sport>CQB</sport></student></students>
    After Delete(id=40,id=60), result(all):<?xml version="1.0" encoding="UTF-8" standalone="yes"?><students><student><id>100</id><mylock>10</mylock><name>WangHaidong</name><sport>BasketBall</sport></students>
    succeed

10.5.3.4. 注意事項

特にありません。