Download presentation
Presentation is loading. Please wait.
1
JPAを利用した RESTful Webサービスの開発
研究者 : 鎌田祐貴 指導教員 : 越田高志
2
1.はじめに 情報を受け取る 変化 情報を発信・提供する(Web2.0) Webサービス 移行 複雑 シンプル
3
研究目標 「生産工程管理システム」に 実装されているリアルタイムでの 「工程進捗管理機能」をWebサービスで 実現することを目標とする。
ユーザ HTTPサーバ ネットワーク リクエスト RESTful Webサービス GETプロトコル MySQL レスポンス
4
2.要素技術について REST(Representational State Transfer)
リソース(URL)をHTTPプロトコルで操作する方式 主な特徴 HTTPのGETプロトコルでXMLベースの情報を受け取ることができる。 URLからHTML情報の代わりにXML情報を取得している。 利点 Webサービスを利用する際に、スタブ(クライアントプログラム)を作成する必要がない。
5
アノテーション機能 ソースコード中に付加された注釈情報のこと。 Javaプログラムの記述をより簡潔かつ正確にできる。 主な例 @GET
@Entity @Path など・・・
6
JPA(Java Persistence API)
O/Rマッピング Javaのクラスをテーブルに対応させ、テーブルの各行をそのクラスのオブジェクトと関連付ける。 効率よいデータベース操作が可能になる。 JPA(Java Persistence API) O/Rマッピングを実現するためのクラスライブラリ。 アノテーションを利用して、O/Rマッピングを自動化でき、記述を簡潔にできる。
7
3.RESTful Web サービスの開発 開発環境 フレームワーク : NetBeans6.7.1
データベース : MySQL5.1.37 HTTPサーバ : GlassFish V3 Plelude
8
システムの機能 MySQLのnew_jobテーブルにアクセス。 指定されたロット番号に対する工程進捗情報を表示する。
ユーザは、ブラウザにWebサービスのURLと入力パラメータを直接指定し、実行する。
9
開始時間、終了時間、作業者ID、機械ID
new_jobテーブル 終了時間 作業者ID ロット番号 開始時間 機械ID ロット番号(作番)を指定すると、 開始時間、終了時間、作業者ID、機械ID が表示される。
10
MySQL JPA new_job テーブル NewJob クラス time_end id_person no_lot O/Rマッピング
11
Webサービスの実行について http://10.50.25.11:8080/ProTestDB/resources/
newJobs? query=SELECT%20e%20FROM%20 NewJob%20e%20where%20e.Lot%3D%27 M78%27 URLのコードはUTF-8 空白 → %20 「=」 → %3D 「 ’ 」 → %27
12
NewJobクラスで生成されたオブジェクト
JPQLの例 new_jobデータベースの作番「M78」の開始時間、終了時間、作業者ID、機械IDの全てを表示する。 SELECT e FROM NewJob e where e.Lot = 'M78' NewJobクラスで生成されたオブジェクト
13
Webサービスプログラムの説明 ・・・・・・・・・・・・・・ @path("/newJobs/")
クラスにURLのパスを割り当てる @path("/newJobs/") public class NewJobsResource{ public NewJobsResource(){ } @GET @Produces({"application/xml"}) ・・・・・・・・・・・・・・ GETプロトコルでリソースを取得する 出力データとしてXML形式を指定する。
14
実行結果
15
デモ ロット番号「K0007」を指定する。 全てのデータを表示する。 SELECT e FROM NewJob e
クエリ(JPQL) SELECT e FROM NewJob e where e.Lot='K0003' 結果の表示 全てのデータを表示する。 クエリ(JPQL) SELECT e FROM NewJob e 結果の表示
16
4.今後の課題 入出力画面(GUI)の作成 URLのUFT-8への自動変換 Webサービスの実行と結果の確認が容易に行えるようにする。
ユーザが自分でUTF-8のコードを入力する必要がないように、入力したクエリ文を自動的にUTF-8に変換させる。
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.