RESTful Web サービス Rational Host Access Transformation Services (HATS) V8.0
by user
Comments
Transcript
RESTful Web サービス Rational Host Access Transformation Services (HATS) V8.0
® IBM Software Group Rational Host Access Transformation Services (HATS) V8.0 新機能ガイド RESTful Webサービス © 2011 IBM Corporation IBM Rational Host Access Transformation Services V8.0 新機能ガイド RESTful Webサービス作成手順 以下の手順で作成 1. マクロを記録 2. マクロから統合オブジェクトを作成 3. 統合オブジェクトからRESTfulサービス・ファイルを作成 4. Rational SDPにファセットの依存性が適用されていない場合は適用する 5. サーブレットのマッピングが作成されていない場合は作成する 6. JAX-RS構成ファイルを作成、もしくは更新する 3~6までのステップはHATSのRESTful Webサービス・サポートとしてカ バー RESTful Webサービス 2 IBM Rational Host Access Transformation Services V8.0 新機能ガイド RESTfulサービス・ファイルの作成 (1/7) 統合オブジェクトを右クリックし、 「RESTfulサービス・ファイルの作成」を選択 RESTful Webサービス 3 IBM Rational Host Access Transformation Services V8.0 新機能ガイド RESTfulサービス・ファイルの作成 (2/7) 任意のクラス名を指定 一般的なJavaの命名規則に従ってください ソースフォルダーにクラスが生成されます RESTfulサービス・ファイルの更新の場合はこの設定はグレイアウトされます RESTful Webサービス 4 IBM Rational Host Access Transformation Services V8.0 新機能ガイド RESTfulサービス・ファイルの作成 (3/7) URI 接尾部 JAX-RSリソースにマッピングするためのサ フィックス(接尾部)を設定します – JAX-RSリソースにアクセスするURI は下記の ようになります http://<hats server>:<port>/<HATS project name>/rest/<URI suffix> メソッド JAX-RSリソース用に定義されたメソッドをリ ストします 「追加」ボタンでメソッドを追加できます RESTful Webサービス 5 IBM Rational Host Access Transformation Services V8.0 新機能ガイド RESTfulサービス・ファイルの作成 (4/7) メソッドの追加 (1/3) HTTPメソッド – HTTPメソッド(GET、POST、PUT、DELETE)を選択します 統合オブジェクトの使用 – このHTTPメソッドで呼び出す統合オブジェクトを選択します – 統合オブジェクトではなく独自のメソッドにHTTPメソッドをマッピングする場合は、「統合オブジェクトの使 用」のチェックを外します RESTful Webサービス 6 IBM Rational Host Access Transformation Services V8.0 新機能ガイド RESTfulサービス・ファイルの作成 (5/7) メソッドの追加 (2/3) 入出力プロパティー – RESTfulサービスに公開するプロパ ティー 別名 – プロパティー名とは違う名前を使用 する場合に設定 RESTful Webサービス 7 IBM Rational Host Access Transformation Services V8.0 新機能ガイド RESTfulサービス・ファイルの作成 (6/7) メソッドの追加 (3/3) JAX-RSリソース・メソッドの構成 – メソッド名 このJAX-RSリソース・メソッド用のJava のメソッド名 – 戻りタイプ このJAX-RSリソース・メソッドから戻さ れるJavaのタイプ – 消費 HTTPリクエストの入力としてサポートさ れるコンテンツ・タイプ(インターネット・ メディア・タイプ、もしくはMIMEタイプ) – 生成 HTTPレスポンスの出力としてサポート されるコンテンツ・タイプ – メソッド・パラメーター このJAX-RSリソース・メソッドでサポー トされる入力パラメーターの追加、変更 RESTful Webサービス 8 IBM Rational Host Access Transformation Services V8.0 新機能ガイド RESTfulサービス・ファイルの作成 (7/7) 生成されるRESTfulサービス・ファイル RESTful Webサービス 9 IBM Rational Host Access Transformation Services V8.0 新機能ガイド RESTfulサービス・ファイルの更新 RESTfulサービス・ファイルを右 クリックし、「RESTfulサービス・ ファイルの更新」を選択 RESTful Webサービス 10 IBM Rational Host Access Transformation Services V8.0 新機能ガイド デザイン・ノート (1/2) RESTfulサービス・ファイル作成時に追加されるファイル、設定 HATSプロジェクト¥Web Content¥WEB-INF¥wink-resources.lst ファイル 2つのファセットをHATSプロジェクトに追加 ※HATSプロジェクトを右クリックし、「プロパティー」で確認可能 – JAX-RS – サーバー・サイド・テクノロジー 以下のサーブレット・マッピングをweb.xmlに追加 <servlet id=“Servlet_6”> <display-name>RestServlet</display-name> <servlet-name>RestServlet</servlet-name> <servlet-class>com.ibm.websphere.jaxrs.server.IBMRestServlet</servlet-class> <init-param> <param-name>applicationConfigLocation</param-name> <param-value>/WEB-INF/wink-resources.lst</param-value> </init-param> <enabled>true</enabled> <async-supported>false</async-supported> </servlet> <servlet-mapping> <servlet-name>RestServlet</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> RESTful Webサービス 11 IBM Rational Host Access Transformation Services V8.0 新機能ガイド デザイン・ノート (2/2) 統合オブジェクトからJAX-RSリソース・ファイルの生成規則 JAX-RSリソースは少なくとも1つのメソッドを含む必要があります。「統合オブジェク トの使用」が選択されている場合、メソッドはHATSのRESTfulラッパーを含み、こ のラッパーは統合オブジェクトの入出力パラメーターをマッピングし、統合オブジェ クトを実行します。デフォルトでは、HATSは統合オブジェクトとパラメーターを以下 の要領でマッピングします。 – HTTP PUT、POST用に、入力パラメーターは単一のエンティティーとしてマップ (Entity) – HTTP GET、DELETE用に、入力パラメーターはクエリ・パラメーターとしてマップ (QueryParam) – 出力の戻り値のタイプは常に単一のエンティティー (Javaオブジェクト) RESTful Webサービス 12 IBM Rational Host Access Transformation Services V8.0 新機能ガイド 既知の制限 (1/2) HATSランタイム時のRESTful Webサービスのサポートに必要な条件 JAX-RSサポート – WAS V6.1のフィーチャー・パック – WAS V7.0のWeb 2.0フィーチャー・パック – WAS V8.0はデフォルトでJAX-RSサポートを含む 「JAX-RS RESTfulサービスの作成」ウィザードはポータル・ターゲット・サーバーではサポートされない ターゲット・サーバーが下記の組み合わせの場合、統合オブジェクトのRESTfulサービス・ファイル作成時にエ ラーとなる場合がある IBM Process Server V7.5、もしくはIBM WebSphere Enterprise Service Bus Server V7.5 テスト環境のサーバーがインストールされていない、つまりスタブのみの場合 このエラーを回避するワークアラウンド 適切なテスト環境サーバーの導入 bi_V75_stubディレクトリーにbase_v7_stub¥web2fepディレクトリーをコピー RESTful Webサービス 13 IBM Rational Host Access Transformation Services V8.0 新機能ガイド 既知の制限 (2/2) 「RESTfulサービス・ファイルの作成」ウィザードを使用せずにJAX-RSリソース・ファイルを手動で作成する場 合、JAX-RSリソースをRestServletサーブレットにマッピングするために、WEB-INF¥wink-resources.lstファイ ルを更新する必要がある メソッド・パラメーターを手動で修正する場合、HATSは統合オブジェクトのパラメーターをマッピングせず、また、 修正されたJavaのメソッド用にその他の自動修正をするようなこともない。この場合、JAX-RSのクラス・ファイ ルを編集し、手動で修正した内容を実装する必要がある URIとHTTPメソッドの組み合わせは、ユーザーが定義したJAX-RSリソースの中でユニークである必要がある。 ユニークでない場合は、JAX-RSランタイムはリソース・ファンクションの中から一つを取り出し、「消費」と「生 成」のコンテンツ・タイプの組み合わせを使用した優先アルゴリズムを基にメソッドを実行することしかできない。 RESTful Webサービス 14 IBM Rational Host Access Transformation Services V8.0 新機能ガイド 問題判別 (1/2) HTTPステータス・コード 以下のHTTPステータス・コードがHATS RESTful Webサービスから返される – 200 成功。エラーなし。 – 400 一般的なエラー。たとえば、リクエスト・ボディーに不正な内容が含まれていた。 – 404 URIが見つからない。 – 405 メソッドが許可されていない。たとえば、サービスはHTTP POSTとPUTをサポートす るが、URIがHTTP DELETEをリクエストした。 – 406 サポートされないレスポンス・フォーマットのリクエスト。サポートされるレスポンス・ フォーマットがAcceptヘッダーに返される。 – 415 サポートされないリクエスト・フォーマット。リクエストに使用されたフォーマットが有効 でない。 HTTP POSTとPUTに対して、リクエストのContent-Type HTTPヘッダー・フィー ルドにサポートされない値が入っているとき使用される。 – 500 内部サーバー・エラー。たとえば、統合オブジェクトの実行エラー。 WebApplicationExceptionがスローされる。 RESTful Webサービス 15 IBM Rational Host Access Transformation Services V8.0 新機能ガイド 問題判別 (2/2) トラブルシューティングに役立つツール Poster – Firefoxのアドオン https://addons.mozilla.org/en-US/firefox/addon/poster/ RESTクライアント・ツール – Eclipseプラグイン http://code.google.com/a/eclipselabs.org/p/restclient-tool/ RESTful Webサービス 16