JDeveloper 11gによるWebサービスの構築と使用

目的

このチュートリアルでは、Oracle JDeveloperを使用して、一連の簡単なWebサービス・シナリオを作成します。このチュートリアルは、JDeveloper 11gのリリース1におけるWebサービスの新機能を簡単に紹介するものです。

このページを正しく実行するには、Internet Explorer 7またはFirefoxを使用してください。

トピック

このチュートリアルでは、以下のトピックについて説明します。

 概要
 前提条件

POJOアノテーション・ドリブン・サービスの構築

宣言型のPOJO Webサービスの構築

既存のWSDLを使用したWebサービスの構築

アノテーション・ドリブンEJB Webサービスの構築

 プロキシ生成を使用したサービス用クライアントの作成
 Webサービス・データ・コントロールを使用したサービス用ADFクライアントの作成
 まとめ

スクリーンショットの表示

 このアイコンの上にカーソルを置くと、すべてのスクリーンショットがロードし、表示されます。(警告:この操作によって、同時にすべてのスクリーンショットがロードされるため、ご使用のインターネット接続によっては応答時間が遅くなる場合があります。)

注:各手順に関連したスクリーンショットのみを表示する場合は、それぞれの手順にあるアイコンの上にカーソルを置いてください。スクリーンショットをクリックすると、非表示になります。

概要

ここでは、Oracle JDeveloperを使用したWebサービス開発の中心的なエンド・ツー・エンド・シナリオをいくつか示します。これらのシナリオの目的は、Java EE 5 Webサービスのデモンストレーション(およびテスト)をおこなうことにあります。具体的には、JAX-WS(Java API for XML Web Services)とアノテーションの処理をおこないます。JAX-WSを使用することで、別々のXMLデプロイメント・ディスクリプタを使用することなくJavaソースに直接アノテーションを入力できます。

JDeveloperの統合サーバーを使用して、Webサービスをテストします。

Oracle by Example(OBE)には、6つのWebサービス・シナリオが含まれます。はじめの3つのシナリオでは、POJO Webサービスを作成します。それぞれのシナリオでは、アノテーション、宣言型開発、WSDLファイルの使用という異なるアプローチを使用します。4番目のシナリオでは、EJB 3.0 Session Beanを使用してWebサービスを作成します。

そのあとのシナリオでは、クライアント側に焦点を当てます。5番目のシナリオでは、Webサービス・プロキシとそれにアクセスする単純なクライアントを作成します。6番目のシナリオではADFクライアントを作成して、Webサービスに基づいてデータ・コントロールを追加します。

 

トピック・リストに戻る

前提条件

 Oracle JDeveloper 11gの起動
 スタートアップ・アプリケーションとプロジェクトの開始

トピック・リストに戻る

Oracle JDeveloper 11gの起動

次の手順で、JDeveloper 11g IDEを起動します。

1.

この リンクを右クリックし、「 Save Link As...」を選択して、 WebService.zipファイルをこのチュートリアル用のディレクトリ(例:d:\Temp)に保存します。

 

2.

ファイルを保存したディレクトリを開き、「 WebService.zip」ファイルを右クリックして、「 WinZip」→「 Extract to here」を選択します。

 

3.

「 スタート」→「 すべてのプログラム」→「 Oracle Fusion Middleware」→「 JDeveloper Studio 11.1.1.0.0」を選択して、Oracle JDeveloperを起動します。

 

4.

Migrate User Settingsダイアログ・ボックスが開いたら、「 NO」をクリックします。

ユーザー・ロールを設定するよう尋ねられたら、「 Default」を選択します。

Tip of the Dayウィンドウを 閉じます。

 

5.

JDeveloper IDEが表示されます。

トピックに戻る

トピック・リストに戻る

スタートアップ・アプリケーションとプロジェクトの開始

1.

「 Application Navigator」タブを選択し、「 Open Application 」をクリックします(または、「 File」→「 Open」を選択します)。

 

2.

Open Applicationダイアログ・ボックスで、WebService.zipファイルを解凍した際に作成されたWebServiceディレクトリへ移動し、「 WebService.jws」を選択します。

「 Open」をクリックします。

 

3.

アプリケーション・ナビゲータは、次のようになります。

トピックに戻る

トピック・リストに戻る

POJOアノテーション・ドリブン・サービスの構築

 Plain Old Java Object(POJO)の追加によるWebサービス・メソッドの追加
 Webサービスのテスト

トピック・リストに戻る

Plain Old Java Object(POJO)の追加によるWebサービス・メソッドの追加

この項では、Plain Old Javaクラスを使用してプロジェクトを開きます。従業員情報と部門情報を返すメソッドを追加します。クラスをWebサービスとして定義するためのアノテーションを追加します。さらに、Webメソッド・アノテーションを追加して、メソッドをWebサービスの一部として定義します。この項では、コード・エディタ、プロパティ・インスペクタ、およびStructureウィンドウを使用して、メソッド・プロパティの変更方法を示します。コンパイルが終了して統合サーバーにデプロイされたら、WebサービスはHTTP Analyzerを使用して実行されます。HTTP Analyzerは、メソッドの結果を返します。

1.

アプリケーション・ナビゲータで、「 Annotation」プロジェクト・ノードを展開してPOJOクラスを検出します。Dept.javaは部門構造体を、Emp.javaは従業員構造体を記述します。MyCompany.javaは、部門と従業員に関する情報を挿入します。

 

2.

「 MyCompany.java」をダブルクリックして編集します。

 

3.

部門と従業員の既存のデータに注意してください。コードの先頭に @WebService アノテーションを追加します。このアノテーションは、Webサービスによって使用されるメソッドがクラスに含まれることを示します。

余白で クイック・ヒント(電球マーク)をクリックし、「 Configure project for web services」を選択します。

 

4.

Select Deployment Platformダイアログ・ボックスで、 Java EE 1.5, with support for JAX-WS Annotationsが選択されていることを確認します。

「 OK」をクリックします。これにより、 javax.jws.WebServiceインポート文がJavaクラスに追加され、 web.xmlファイルが作成されます。

 

5.

アプリケーション・ナビゲータは、次のように表示されます。

MyCompany.javaクラスのアイコンがWebServiceクラスを表すように変更され、 web.xmlファイルがプロジェクトに追加されていることを確認します。

 

6.

クラスの一番下までスクロールして、次の文を追加します。

public Dept getDeptInfo(int id){
for (Dept a : this.getMyDepts()){
if (a.getId()==id) {
return a;
}
}
return null;
}

このループは、特定の部門で働いているすべての社員に関する情報を返します。

 

7.

getDeptInfo()メソッドの前に2番目のアノテーションを作成します。このアノテーションは、メソッドがWebサービスから公開されることを示します。 getDeptInfo()メソッドの上に空白行を追加し、 @WebMethod と入力します。コード・インサイトによって、使用可能な構文のリストがポップアップ表示されます。構文のリストから「 WebMethod」を選択します。

文の追加を提示されたら、[ Alt]+[ Enter]キーを押して、 import javax.jws.WebMethod;文を追加します。

クラスの表示は次のようになります。

 

8.

Save Allアイコン「  」をクリックして作業内容を保存します。

 

9.

プロパティ・インスペクタを使用して、クラスの特性を変更できます。メニュー・バーから「 View」→「 Property Inspector」を選択すると、IDEの画面下部にプロパティ・インスペクタがタブとして表示されます。

注:IDEの別の位置にプロパティ・インスペクタが表示される場合、任意でタブをドラッグして下部のパネルにドロップできます。

 

10.

プロパティ・インスペクタでプロパティを表示するには、Structureウィンドウの下部の「 Source」タブを選択し、最上位レベルの「 MyCompany」クラス名を選択します。

 

11.

プロパティ・インスペクタのウィンドウ左側にいくつかのフィンガー・タブが表示されます(これらのタブは、プロパティ・インスペクタ・ウィンドウに表示可能な領域があれば、展開可能な見出しになります)。「Web Services」タブを選択すると、Service Nameのクラス名に'Service'が追記されていることがわかります。"MyCompanyService"というサービス名を使用しない場合は、ここで変更できます。変更内容は、クラスに反映されます。

サービス名を MyCompanyWSに変更し、作業内容を保存します。

 

12.

コード・エディタで、 @WebService アノテーションが新しいサービス名に合わせて更新されていることを確認できます。反対に、コード・エディタでおこなった変更内容もプロパティ・インスペクタに反映されます。この機能はメソッド・レベルでも使用できます。

ここまでで、クラスの作成と公開メソッドを含むWebサービスとしての定義が完了しました。次に、Webサービスのテストをおこないます。

トピックに戻る

トピック・リストに戻る

Webサービスのテスト

この項では、 Webサービスのコンパイル、デプロイ、およびテストをおこないます。HTTP Analyzerは、Webサービスのテストをおこなうメカニズムです。HTTP Analyzerを使用してWebサービスをテストする場合、サービスをコンパイルして統合サーバーにデプロイします。次にアナライザを起動すると、Webサービスへの値の送受信が可能になります。

1.

Webサービスのテストをおこなう前に、ブラウザ設定が正しいことを確認します。 「 Tools」→「 Preferences」を選択し、左側のリストを下方向にスクロールして「 Web Browser and Proxy」ページを選択します。 Use HTTP Proxy Serverチェック・ボックスが選択されていないことを確認し、「 OK」をクリックします。

 

2.

アプリケーション・ナビゲータで「 MyCompany.java」ノードを右クリックし、コンテキスト・メニューから「 Test Web Service」を選択します。

これにより、WebLogicServerが起動され、サービスがデプロイされて、アナライザが開始されます。WebLogicServer を初めて実行する場合、開始に数秒かかる場合があります。初めてサービスのテストをおこなう場合、コンテンツの表示をブロックするかどうか確認を求められることがあります。その場合は、コンテンツの表示を許可してください。

 

3.

HTTP Analyzerエディタ・ウィンドウの上部にはWebサービスのURL、WSDL URL、および公開される操作が表示されます。リストから「 MyCompanyPort.getDeptInfo(,)」操作を選択します。

アナライザの下部は、リクエストとレスポンスの2つの領域に分かれています。リクエスト領域には、使用されるメソッドの引数がすべて表示されます。Webサービスを実行すると、レスポンス領域に結果が表示されます。

 

4.

リクエスト領域で、「 arg0」フィールドに部門番号(10、20、または30)を入力します。

アナライザの上部で「 Send Request」をクリックします。または、引数の下の Send Requestボタン「  」をクリックします。

 

5.

アナライザによってサービスにリクエストが送信され、数秒後に、指定した部門で働いている従業員に関する情報が返されます。

 

6.

エディタの下部の「 HTTP Content」タブをクリックして、XMLコードを表示します。

 

7.

エディタの下部の「 Raw Message」タブをクリックして、コードを別の方法で表示します。

 

8.

HTTP Analyzerウィンドウの上部にある「 WSDL URL」リンクをクリックします。

 

9.

Webサービスのビジュアル・エディタが開きます。「 getDeptInfo」→「 input」→「 getDeptInfo」の順にノードを展開します。

 

10.

左側の隅にある「 Messages Plus」記号をクリックします。

選択したメッセージのフローがグラフィカル表示されます。

 

11.

エディタ・ウィンドウの任意のタブを右クリックして、「 Close All」を選択します。

アプリケーション・ナビゲータで「 Annotation」プロジェクト・ノードを閉じます。

トピックに戻る

トピック・リストに戻る

 

宣言型のPOJO Webサービスの構築

 メソッドを含むJavaクラスの作成とWebサービスとしての公開
 統合サーバー・コンテナを使用したWebサービスのテスト

トピック・リストに戻る

メソッドを含むJavaクラスの作成とWebサービスとしての公開

この項では、 前述の項と同様に、新規プロジェクトとJavaクラスを作成します。このシナリオでは、アノテーションの代わりにウィザードを使用してWebサービスを作成します。ウィザードにより、クラスをWebサービスとして使用するために必要なすべてのファイルとエントリが作成されます。

ウィザードの手順が終了したら、前項と同様にHTTP Analyzerを使用して、 統合サーバーを使用したWebサービスのテストをおこないます。次に、Webサービスを統合サーバーの インスタンスにデプロイし、アナライザの代わりにブラウザを使用してサービスのテストをおこないます。

1.

新しい空のプロジェクトを作成します。「 Annotation」プロジェクト・ノードを右クリックして、「 New」を選択します。次に、New Galleryで「 Generic Project」を選択します。「 OK」をクリックします。

Create Projectダイアログで、プロジェクトに Wizardという名前をつけます。

「 Finish」をクリックします。

 

2.

アプリケーション・ナビゲータで、「 Wizard」プロジェクトを右クリックして、コンテキスト・メニューから「 New」を選択します。

新規ギャラリで「 Java Class」を選択し、 HelloServiceという名前で新規Javaクラスを作成します。

デフォルトでは、パッケージ名がプロジェクト名になります。パッケージ名が wizardと指定されているか確認します。残りの値はデフォルトのままにし、「 OK」をクリックしてコード・エディタを起動します。

 

3.

アノテーション・シナリオと同じsayHelloメソッドをクラスに追加します。今回はアノテーションを追加しないでください。変更を保存します。

public String sayHello (String s) {
return "Hello " + s;
}

この時点では、Helloという単語のあとにパラメータとして入力された値を返す、非常にシンプルなビジネス・ロジックをもつクラスを作成したに過ぎません。

 

4.

アプリケーション・ナビゲータで「 HelloService.java」ノードを右クリックし、「 Create Web Service」を選択します。これにより、Webサービスとしてクラスを作成するウィザードが起動します。

 

5.

Create Java Web ServiceウィザードのSelect Deployment Platformステップで、配置プラットフォームとしてJava EE 1.5, with support for JAX-WS Annotationsが選択されていることを確認します。

「 Next」をクリックします。

 

6.

ウィザードのGeneration Optionsステップで、Web Service Nameに MyWebService1と入力し、Port Nameを MyWebService1Portに設定します。

「 Next」をクリックします。

 

7.

Message Formatダイアログで「 SOAP 1.2 Binding」を選択します。

「 Next」をクリックします。

 

8.

Methodsステップには、公開できるすべてのメソッドが表示されます。公開したいメソッドを選択します。ここでは1つのメソッドしか表示されておらず、デフォルトで選択されているため、「 Next」をクリックします。

残りのページでは、サービスに必要な追加クラスの指定、サービスのポリシーの設定、ハンドラの詳細の指定をおこないます。これらの値は変更しないので、いずれかのスクリーンで「 Finish」をクリックし、Webサービスを作成します。

 

9.

クラス定義は更新され、Webサービスの公開に必要なアノテーションが追加されています。ポート名がMyWebService1Portに設定されていることを確認します。この名前になっていない場合はエディタで変更します。

 

10. Save Allアイコン「  」をクリックして作業内容を保存します。

トピックに戻る

トピック・リストに戻る

統合サーバー・コンテナを使用したWebサービスのテスト

この項では、 Webサービスのコンパイル、デプロイ、およびテストをおこないます。前述の項と同様に、HTTP Analyzerを使用してWebサービスのテストをおこないます。このアナライザを使用してWebサービスをテストする場合、サービスをコンパイルして統合サーバーにデプロイします。次にアナライザを起動すると、Webサービスへの値の送受信が可能になります。

1.

アプリケーション・ナビゲータでWizardプロジェクトの「 HelloService.java」ノードを右クリックし、コンテキスト・メニューから「 Test Web Service」を選択します。

これにより、統合サーバーの起動とサービスのデプロイがおこなわれ、アナライザが開始されます。統合サーバーを初めて実行する場合、開始に数秒かかる場合があります。

 

2.

HTTP Analyzerエディタの上部にはWebサービスのURL、WSDL URL、サービス名、および公開される操作が表示されます。

 

3.

リクエスト領域で、「 arg0」フィールドに <あなたの名前>を入力して、「 Send Request」をクリックします。

 

4.

アナライザによってサービスにリクエストが送信され、数秒後に戻りパラメータが表示されます。

 

5.

WSDLファイルからWebサービスを作成するための準備として、WSDLをファイルに保存します。アプリケーション・ナビゲータで「 HelloService.java」クラスを右クリックして、「 Show WSDL for Web Service Annotations」を選択します。

 

6.

WSDLファイルの生成が開始されます。設計エディタで MyWebService1.wsdlが表示されます。ノードをいくつか開いてフローをビジュアル表示してみてください。

エディタの下部の「 Source」タブをクリックすると、XMLコードが表示されます。

 

7.

メニューから「 File」→「 Save As...」を選択します。

選択したディレクトリにファイルを保存します。

保存されたファイルは、統合サーバーにデプロイされる内容を表します。

 

8.

MyWebService1.wsdlファイルを保存したディレクトリを検索し、Wordpadで開きます。

ファイルの確認後、「 close」をクリックして、WordPadのウィンドウを閉じます。

 

9.

エディタ内ですべてのタブを閉じて、アプリケーション・ナビゲータで「 Wizard」ノードを閉じます。

トピックに戻る

トピック・リストに戻る

既存のWSDLを使用したWebサービスの構築

 WSDLを使用したWebサービスの作成
 Webサービスのテスト

トピック・リストに戻る

WSDLを使用したWebサービスの作成

前述の2項では、アノテーションとウィザードを使用してWebサービスを作成しました。ここでは、 既存のWSDLファイルからWebサービスを作成します。使用するWSDLファイルは、前述の項でファイル・システムに保存したものです。

1.

「 Annotation」プロジェクト・ノードを右クリックして、「 New」を選択します。次に、New Galleryで「 Generic Project」を選択します。「 OK」をクリックします。

新しい Generic Projectを作成して TopDownという名前をつけます。ほかの値はデフォルトのままにします。

 

2.

新しく作成した「 TopDown」プロジェクトを右クリックして、「 New」を選択します。

Categoriesリストで「 Business Tier」→「 Web Services」を選択します。「 Java web Service from WSDL」項目を選択して、「 OK」をクリックします。

 

3.

Create Java Web Service from WSDLウィザードで、「 Next」をクリックしてWelcomeページをスキップします。 ウィザードのSelect Deployment Platformステップで、配置プラットフォームとして Java 1.5, with support for JAX-WS Annotationが選択されていることを確認し、「 Next」をクリックします。

 

4.

Select Web Service Descriptionステップで、Webサービスの作成に使用するソースWSDLを指定します。「 Browse」をクリックし、保存したWSDLに移動します(例: MyWebService1.wsdl)。ファイルを選択して、「 Open」をクリックします。



ファイル・パスがWSDL Document URLフィールドに表示されます。

「 Next」をクリックします。

 

5.

「 Finish」をクリックしてウィザードを終了するか、または「 Next」をクリックしてすべてのデフォルトのオプションを確認します。次のスクリーンショットは、ウィザードの最終ページです。

 

6.

変更を 保存します。アプリケーション・ナビゲータにJava WebサービスとすべてのJavaファイルが表示されます。

wsdlのデザインがエディタ・ペインに表示されます。

 

7.

Webサービスはトップダウンで作成され、すべてのヘッダーが作成されていますが、本体はユーザーが記述する必要があります。sayHelloメソッドを設定して、もう少し意味のある値を返すようにします。 HelloServiceImpl.javaファイルをダブルクリックして、エディタで開きます。

 

8.

"Hello " + arg0 を返すように変更します。これにより、単語Helloとともに引数に入力された値が返されます。

 

9. Save Allアイコン「  」をクリックして作業内容を保存します。

トピックに戻る

トピック・リストに戻る

Webサービスのテスト

この項では、 Webサービスのコンパイル、デプロイ、およびテストをおこないます。前述の項と同様に、HTTP Analyzerを使用して Webサービスのテストをおこないます。HTTP Analyzerを使用してWebサービスをテストする場合、サービスをコンパイルして統合サーバーにデプロイします。これにより、テスト時にアナライザが起動され、Webサービスへの値の送受信が可能になります。

1.

アプリケーション・ナビゲータで「 MyWebService1」ノードを右クリックし、コンテキスト・メニューから「 Test Web Service」を選択します。

これにより、統合サーバーの起動とサービスのデプロイがおこなわれ、アナライザが開始されます。

 

2.

HTTP Analyzerエディタの上部にはWebサービスのURL、WSDL URL、および公開される操作が表示されます。

 

3.

リクエスト領域で、「 arg0」フィールドに <あなたの名前>を入力して、「 Send Request」をクリックします。

 

4.

次に、アナライザによってサービスにリクエストが送信され、しばらくすると戻りパラメータが表示されます。

 

5.

エディタ・ペイン内ですべてのタブを閉じて、アプリケーション・ナビゲータで「 TopDown」ノードを閉じます。

トピックに戻る

トピック・リストに戻る

 

アノテーション・ドリブンEJB Webサービスの構築

 EJB 3.0 Session Beanの新規プロジェクトの作成
 Webサービスのテスト

トピック・リストに戻る

EJB 3.0 Session Beanの新規プロジェクトの作成

この項では、Session Beanを作成し、アノテーションを使用してこれをWebサービスとして実装します。

1.

「 Annotation」プロジェクト・ノードを右クリックして、「 New」を選択します。次に、New Galleryで「 Generic Project」を選択します。「 OK」をクリックします。

新しい Generic Projectを作成して EJB-Annoという名前をつけます。ほかの値はデフォルトのままにします。

「 Finish」をクリックします。

 

2.

「 EJB-Anno」プロジェクトを右クリックして、「 New」を選択します。

New Galleryで、Categoriesリストの「 Business Tier」ノードを展開し、「 EJB」を選択します。Itemsリストで「 Session Bean」を選択します。

「 OK」をクリックします。

 

3.

新しいSession Beanウィザードで、ステップ4に進むまで「 Next」をクリックして、 EJBバージョン (Enterprise JavaBeans 3.0)、 名前、および クラス定義ページのデフォルトを受け入れます。

EJB Home and Component Interfacesページでは、いずれのインタフェースも実装しないでください。

「 Next 」をクリックしてから「 Finish」をクリックするとBeanが作成されます。

 

4.

エディタで、 SessionEJBBean.javaファイルが開きます。アノテーション・シナリオと同じ sayHello()メソッドを追加します。変更を保存します。

public String sayHello (String s) {
return "Hello " + s;
}

この時点では、Helloという単語のあとにパラメータとして入力された値を返す、シンプルなビジネス・ロジックをもったクラスを作成したに過ぎません。

 

5.

クラス定義の上に @WebService アノテーションを追加し、左余白の電球マークをクリックして「 Configure project for web services」を選択します。 WebService (javax.jws)インポート文が生成されます。

 

6.

POJOシナリオと同様に、sayHelloメソッドの上に @WebMethod アノテーションを追加します。

要求されたら、[ Alt]と[ Enter]を押してインポート文を追加します。

 

7. Save Allアイコン「  」をクリックして作業内容を保存します。

トピックに戻る

トピック・リストに戻る

統合サーバー・コンテナを使用したWebサービスのテスト

この項では、 Webサービスのコンパイル、デプロイ、およびテストをおこないます。前述の項と同様に、HTTP Analyzerを使用してWebサービスのテストをおこないます。HTTP Analyzerを使用してWebサービスをテストする場合、サービスをコンパイルして統合サーバーにデプロイします。これによりアナライザが起動され、テスト時にWebサービスへの値の送受信が可能になります。

1.

アプリケーション・ナビゲータで「 SessionEJBBean.java」ノードを右クリックし、コンテキスト・メニューから「 Test Web Service」を選択します。

 

2.

HTTP Analyzerエディタの上部にはWebサービスのURL、WSDL URL、および公開される操作が表示されます。

 

3.

リクエスト領域で、「 arg0」フィールドに <あなたの名前>を入力して、「 Send Request」をクリックします。

 

4.

次に、アナライザによってサービスにリクエストが送信され、しばらくすると戻りパラメータが表示されます。

 

5. 「 Close」をクリックしてすべてのタブを閉じ、 EJB-Annoプロジェクトを閉じます。

トピックに戻る

トピック・リストに戻る

プロキシ生成を使用したサービス用クライアントの作成

 Webサービス・プロキシの作成
 クライアントの作成とテスト

トピック・リストに戻る

Webサービス・プロキシの作成

この項では、ウィザードを使用して、Webサービスを呼び出すJavaプロキシを生成します。完了したら、プロキシに接続してこれを使用するクライアントを作成します。

1.

「 Annotation」プロジェクト・ノードを右クリックして、「 New」を選択します。次に、New Galleryで「 Generic Project」を選択します。「 OK」をクリックします。

新しい Generic Projectを作成して、 ClientTesterという名前をつけます。

 

2.

クライアントを使用するには、HTTP Analyzerを起動して、いずれかのサービスをアナライザで実行しておく必要があります。実行されていない場合、「 Annotation」プロジェクトを開き、HTTP Analyzerで MyCompanyクラスをテストします。稼働中であることを確認します。(作成したWebサービスのうち、いずれを使用しても構いません。)

HTTP Analyzerから URLをコピーします。HTTP Analyzerタブを閉じないでください。

 

3.

プロキシを生成するには、 「 ClientTester」プロジェクトを右クリックして、「 New」を選択します。

New Galleryで、「 All Technologies」タブを選択します。 Categoriesリストの「 Business Tier」ノードを開き、「 Web Services」を選択します。「 Web Service Proxy」項目を選択し、「 OK」をクリックします。

これにより、Create Web Service Proxyウィザードが起動します。

 

4.

「 Next」をクリックして、Welcomeページをスキップします。Select Client Styleページで、「 JAX-WS Style」を選択します。

「 Next」をクリックします。

 

5.

Select Web Service Descriptionページで、WSDLサービスのロケーションを指定します。WSDLを参照するには、URLを使用する方法とファイルを使用する方法の2つがあります。

URLを使用するには、HTTP AnalyzerでURLをコピーし、WSDL Document URLに貼りつけ、 "?wsdl"を追加します(例: http://localhost:7101/WebService-Annotation-context-root/MyCompanyPort?wsdl)。このURLを使用する場合、「 Copy WSDL into Project」をチェックする必要があります。

または、前述のとおり、ブラウズ・ボタンを使用してマシン上のWSDLファイルを探すこともできます(例: D:\Temp\MyWebService1.wsdl)。

「 Next」をクリックします。

 

6.

Specify Default Mapping Optionsで、「 Next」をクリックして、デフォルト値を受け入れます。

Port Endpointsで、「 Run against a service deployed to Integrated WLS」を選択します。

「 Next」をクリックします。

 

7.

ウィザードの残りのページでは、デフォルト値をそのまま受け入れます。「 Next」をクリックして残りの手順を確認するか、「 Finish」をクリックしてプロキシを作成します。

 

8.

Save Allアイコン「  」をクリックして作業内容を保存します。

 

9.

アプリケーション・ナビゲータで「 ClientTester 」、「 annotation」、「 MyCompanyWSProxy」ノードの順に開きます。アプリケーション・ナビゲータの表示は次のようになります。

トピックに戻る

トピック・リストに戻る

クライアントの作成とテスト

この項では、 Webサービス・プロキシを起動するクライアントを更新し、結果をメッセージ・ウィンドウに返します。

1.

アプリケーション・ナビゲータで「 MyCompanyPortClient.java」クラスをダブルクリックします。

 

2.

MyCompanyPortClientクラスの main()メソッド内で、次のコードをmainメソッドに追加します。

Dept dept = myCompany.getDeptInfo(10);
System.out.println(dept.getName() + " is at " + dept.getLocation());

Save Allアイコン「  」をクリックして作業内容を保存します。

 

3.

クライアントのテストをおこないます。アプリケーション・ナビゲータで「 MyCompanyPortClient.java」ファイルを右クリックし、 「 Run」を選択します。(クライアントのリクエストを処理するには、HTTP Analyzerが起動されており実行中でなければなりません。HTTP Analyzerが起動されていない場合は、Annotationプロジェクトへ戻り、「MyCompany.java」ファイルを右クリックしてから「 Test Web Service」を選択します。)

クライアントの結果は、 ClientTester.jpr -Logウィンドウで確認できます。正しく実行された場合、 Administration is at Redwood Cityと表示されます。

 

4. エディタ・ペイン内ですべてのタブを閉じ、「 Run Manager」ペイン、および「 ClientTester」プロジェクトを閉じます。

トピックに戻る

トピック・リストに戻る

 

Webサービス・データ・コントロールを使用したサービス用ADFクライアントの作成

 Webサービス・データ・コントロールの作成
 JSF JSPページの作成とWebサービスの追加

トピック・リストに戻る

Webサービス・データ・コントロールの作成

この項では、 統合サーバーにデプロイしたWSDLを使用して、データ・コントロールを作成します。前述のシナリオのようにオリジナルのJavaコードがアプリケーションに含まれることはなく、デプロイされたWSDLからデータ・コントロールが作成されます。データ・コントロールが作成されたら、すべてのADFクライアント・アプリケーションでこれを使用できます。

1.

アプリケーション名の横にある 下矢印をクリックして、コンテキスト・メニューから「 New Project」を選択します。

New Galleryで、「 Web Project」を選択します。

「 OK」をクリックします。

 

2.

プロジェクトに WebClientという名前をつけます。「 Next」をクリックし、もう一度「 Next」をクリックします。

Page Flowテクノロジーで、「 JavaServer Faces (JSF)」を選択して、「 Next」をクリックします。

Tag Librariesリストで、「 ADF Faces Components 11」を移動します。

「 Next」をクリックします。

「 Next」→「 Finish」をクリックします。

 

3.

アプリケーション・ナビゲータで「 WebClient」ノードを右クリックし、コンテキスト・メニューから「 New」を選択します。

New GalleryのBusiness Tierで、「 Web Services」ノード、「 Web Service Data Control」の順に選択します。

「 OK」をクリックします。

 

4.

Create Web Service Data Controlウィザードの最初のステップで、データ・コントロールに MyCompanyDCという名前をつけて、WSDL URL( http://localhost:7101/WebService-Annotation-context-root/MyCompanyPort?wsdl )を貼りつけます。URLをブラウザからコピーすることもできますが、 統合サーバー・インスタンスであることを確認する必要があります。

[Tab]キーを押すと、データ・コントロールを使用するWebサービスが表示されます。「 Next」をクリックします。

 

5.

Data Control Operationsページで、「 getDeptInfo」メソッドをSelectedリストに移動します。「 Next」に続き、「 Finish」をクリックします。

アプリケーション・ナビゲータの表示は次のようになります。

 

6.

Save Allアイコン「  」をクリックして作業内容を保存します。

 

7.

アプリケーション・ナビゲータで「 Data Control」アコーディオンを開き、先ほど作成した MyCompanyDCデータ・コントロールを表示します。

ここまでで、JSF JSPページを作成し、データ・コントロールを使用する準備が整いました。

トピックに戻る

トピック・リストに戻る

JSFページの作成とWebサービスの追加

この項では、 データ・コントロールから作成したフィールドを含み、結果をページに返すJSFページを作成します。

1.

WebClientプロジェクトから New Galleryを起動します。

「 Web Tier」ノードを開き、「 JSF」サブノードを選択します。Itemsリストで「 JSF Page」を選択します。

「 OK」をクリックします。

 

2.

ページに「 Dept_Emp」という名前をつけ、「 Create as XML Document」チェック・ボックスを選択し、「 Page Template」をオンにして、「 Oracle Three Column Layout」を選択します。

「 OK」をクリックします。

 

3.

エディタでページが表示されます。

 

4.

次に、メソッドのデータ・コントロールを追加します。このページはパラメータを受け入れ、Webサービスへの呼出しを実行し、マスター・ディテール形式で結果を返します。データ・コントロール・パレットで、「 MyCompanyDC」データ・コントロールを開き、「 getDeptInfo(Integer)」メソッドを選択します。

「 getDeptInfo(Integer)」メソッドをドラッグして、ページのstartファセットにドロップします。ドロップするとメニューが表示されます。「 Parameters」→「 ADF Parameter Form」を選択します。

 

5.

Edit Form Fieldsウィンドウで、「 OK」をクリックして、デフォルト値を受け入れます。

「 OK」をクリックします。

 

6.

Data Controlsペインで「 MyCompanyDC」→「 getDeptInfo」→「 Return」→「 Return」の順に展開し、「 Employees」を選択します。

「 Employees」をドラッグして、centerファセットにドロップします。動的メニューから「 Master-Details」→「 ADF Master Form - Detail Table」を選択します。

 

7.

Save Allアイコン「  」をクリックして作業内容を保存します。

 

8.

「 end」ファセット内を右クリックして、コンテキスト・メニューから「 Delete」を選択します。

 

9.

Structureペインで、「 af:table」コンポーネントを右クリックし、コンテキスト・メニューから「 Surround With」を選択します。

Surround Withウィンドウで、「 Panel Collection」を選択し、「 OK」をクリックします。

 

10.

「 panelCollection」を展開し、「 af:table」コンポーネントを選択します。プロパティ・インスペクタで、Column Selectionプロパティを singleに設定します。

 

11.

ページ内をクリックして、「 Run」を選択します。

 

12.

ページにブラウザがロードされます。

 

13.

パラメータ値フィールドに部門番号を入力し、「 getDeptInfo」ボタンをクリックします。

 

14.

関連する従業員が取得および表示されます。

 

15. これで、この実習は完了です。

トピックに戻る

トピック・リストに戻る

まとめ

このチュートリアルでは、JDeveloper 11gのいくつかの機能について学習しました。

このチュートリアルで学習した内容は、以下のとおりです。

POJOアノテーション・ドリブン・サービスの構築

宣言型のPOJO Webサービスの構築

既存のWSDLを使用したWebサービスの構築

 アノテーション・ドリブンEJB Webサービスの構築
 プロキシ生成を使用したサービス用クライアントの作成
 Webサービス・データ・コントロールを使用したサービス用ADFクライアントの作成

 このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。