X

An Oracle blog about WebLogic Channel

WebLogic ServerでJAX-RS

WebLogic勉強会 通信

WebLogic Serverファンの皆様、こんにちは、WebLogic Server勉強会通信です。

3月21日に開催された「第34回WebLogic Server勉強会@東京」の後半の「WebLogic ServerでJAX-RS」(GlassFishユーザー・グループ・ジャパン 副会長 蓮沼 賢志氏)セッションをレポートします。JAX-RSはJava EE 6に含まれるRESTful Webサービスを使用した仕様で、よりシンプルにWebサービスを活用することを目指しています。WebLogic Serverにおいては 11gバージョンでも先取りして取り入れられています。今回は蓮沼氏のセッション資料の前半を使用しながら WebLogic Server初心者向けにRESTful Webサービスの概要とJAX-RSの基本を紹介します。(日本オラクル Fusion Middleware事業統括本部 佐々木 政和)

JAX-RSとは


JAX-RSはThe Java™ API for RESTful Web Servicesの略です。
JAX-RSの仕様書「JSR-000311 JAX-RS: The JavaTM API for RESTful Web Services」で公開されています。JAX-RSはHTTPを使用したシンプルなWebサービスの仕様で、この仕様に基づくJAX-RS実装が下図のようにいくつか提供されています。JerseyはGlassFishが提供しているJAX-RSのリファレンス実装です。WebLogic ServerのJAX-RSもJerseyをベースに実装されています。また、インターネット上の様々なサービス提供会社、例えばAmazon, Yahoo, TwitterなどもRESTful Webサービスを提供しています。

RESTfulクライアントとRESTful Webサービス間の通信


クライアントとRESTful Webサービスの通信手順は下記のようになっています。クライアントはURI内にリソースおよびパラメータを組み込みHTTP通信で呼び出します。RESTful Webサービス(リソースクラス)は渡されたパラメータを元に処理を実行し、その結果をXML形式の応答メッセージで返します。この時HTTP通信なのでHTTPのステータス(正常・異常など)も返ります。この図ではステータスが200なので正常に処理が実行されたことが分かります。(JAX-RSではHTTP通信を使用するのでHTTPステータスは重要)

RESTの3要素とは


上記のようにJAX-RSの基本はHTTP通信を使用してクライアントとWebサービス間をシンプルに通信することが目的であり、構成要素として「リソース」、「メソッド」、「URI」の3つが重要です。

RESTの3要素:リソース

RESTの3要素:メソッド

RESTの3要素:URI


リソースは@Pathアノテーション付きのクラス(POJO)、メソッドはリソースクラスのメソッドで、対応するアノテーション(@GET, @POST, @PUT, @DELETE)を付加します。URIは@Pathやパラメータを渡すための情報を付加します。

実際のRESTful Webサービスのプログラミング例


これはクライアントからのリクエストを受け付け、応答を返すRESTful Webサービスのサンプルです。POJOでリソースクラスを作成します。@GETアノテーションを追加します。@Path(), @QueryParam()は下の図のようにURIに埋め込んだリソースの名前、渡すパラメータのためのアノテーションです。

まとめ


以上、蓮沼氏のJAX-RSセッションの前半、基本を振り返ってみました。今回初めての方、リソース、メソッド、URIの3要素の関係が何となくイメージしていただけたかと思います。詳細は、「WebLogic ServerでJAX-RS」蓮沼氏の資料をご覧ください。
なお、WebLogic ChannelではJAX-RS関連の技術情報、特にWebLogic Server 12c上で実際にJAX-RSアプリを動かす流れを説明している資料が下記にアップされていますので、併せてご活用ください。


[連載] WebLogic Server 12cでJava EE 6を動かしてみよう!(6) JAX-RS 第1回

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.