0) { obj.className = "imgborder_on"; } } } function hideImage(obj) { if (obj.className.substr(0, 10) == "imgborder_") { obj.src = eyeglass.src; obj.className = "imgborder_off"; } } function showAllImages() { imgs = document.images; for (i=0; i < imgs.length; i++) { showImage(imgs[i]); } } function hideAllImages() { imgs = document.images; for (i=0; i < imgs.length; i++) { hideImage(imgs[i]); } } //-->
PL/SQLパッケージからのWebサービスの開発
目的
このチュートリアルでは、PL/SQLパッケージからWebサービスを作成します。そのWebサー ビスをOC4Jへ配布し、テストします。
所要時間
約30分
トピック
このチュートリアルでは、以下のトピックについて説明します。
スクリーンショットの表示
このアイコンの上にカーソルを置くと、
すべてのスクリー ンショットがロードし、表示されます。(警告:すべてのスクリーンショットが同時にロードされるため、ご使用のインターネット接続によってはレスポンス・ タイムが遅くなる場合があります。)
注:各手順に関連したスクリーンショットのみを表示する場合は、それぞ れの手順にあるアイコンの上にカーソルを置いてください。スクリーンショットをクリックすると、非表示になります。
概要
Webサービスは、再利用可能な独立したソフトウェア・コンポーネントで、アプリケーションへの組 込みが可能です。Webサービスは、既存のXMLプロトコルやHTTPプロトコル上に構築され、次の標準を使用しています。
| Webサービス記述言語(WSDL)Webサービスを定義 するXMLベースの言語 |
| SOAP (Simple Object Access Protocol):XML構文を使用して、HTTPを通したコマンドを送信し、Web上のサービスにアクセスするためのXMLベースのプロトコル |
| UDDI (Universal Description, Discovery, and Integration):ソフトウェアによるWeb上のサービスの発見およびサービスとの統合を可能にする、Webサービスのユニバーサルなカタログ |
Oracle JDeveloperは、Webサービスの作成と配布や、アプリケーションで使用するための既存のWebサービスの発見を支援する機能を数多く提供してい ます。このチュートリアルでは、既存のPL/SQLパッケージを基にしたWebサービスの作成および配布に関する方法を説明します。作成したWebサービ スは、OC4Jへ配布してテストし、正しく機能するようにします。
ト ピック・リストに戻る
シナリオ
Oracle JDeveloperを使用して、PL/SQLパッケージに存在している機能のいくつかをWebサービスとして公開します。
トピック・リストに戻る
前提条件
このチュートリアルを始める前に、次のことを確認してください。
1.
|
Oracle JDeveloper (10.1.3.1.0)にアクセスできるか、またはインストール済みであること。この製品は、
Oracle Technology Networkからダウンロードできます。
| 2.
|
<
jdev_install>\jdeveloper.exe
を ダブルクリックして、Oracle JDeveloperを起動しておくこと。
前のバージョンから移行するかどうかを尋ねるメッセージが出たら、「
い いえ」をクリックします。
| 3.
|
Oracle Database 10gを含むOracle Sample Schemaにアクセスできるか、またはインストール済みであること。
このチュートリアルでは、HRスキーマを使用します。特に、ページはEmployee 表と連動します。HRスキーマのインストールの手順は、次のURLを参照してください。
http://www.oracle.com/technology/obe/obe10131jdev/common/OBEConnection.htm
| 4. |
ローカル・マシンの
tempディ レクトリに、次の
ファイルがコピー済みであること。
| 5. |
<
jdev_install>\jdev\bin\start_oc4j.bat
を ダブルクリックして、Oracle Application Server Containers for J2EE (OC4J)を起動しておくこと。
パスワードを入力するよう指示された場合は、
welcome1と 入力します。パスワードを入力しても、何も表示されません。確認のため、次の行にパスワードを再入力する必要があります。パスワードを入力するように指示 されない場合は、後の手順のために、OC4Jを最初に起動したときに設定したパスワードを覚えておく必要があります。
現れるコマンド・ウィンドウに、'Oracle Containers for J2EE 10g (10.1.3.1.0) が初期化されました'のメッセージが出るまで待ちます。メッセージが出たら、ウィンドウを最小化してもかまいませんが、閉じないでください。
| 6. |
Oracle JDeveloperで、OC4Jへの接続を以下の手順で作成しておくこと。
- 「
接続」タブをクリックします(「
接続」タブが表示されていない 場合は、メニューから「
表示」→「
接続ナビゲータ」を選択します)。
- アプリケーション・サーバー・ノードを右クリックし、コンテキスト・メニューか ら「
新規アプリケーション・サーバー接続」を選択します。
- アプリケーション・サーバー接続の作成ウィザードの初期画面が表示されたら、「
次へ」 をクリックします。
- ウィザードのタイプ・ページで、接続名
oc4jconnを 入力し、「
次へ」をクリックします。
- ウィザードの認証ページで、パスワード
welcome1(ま たは、OC4Jを最初に起動したときに使用したパスワード)を入力し、「
パスワードを配布」を選択して「
次 へ」をクリックします。
- ウィザードの接続ページで、「
次へ」をクリックします。
- ウィザードのテスト・ページで、「
接続のテスト」をクリックします。テストの 後、ステータス・メッセージにSuccess!と表示されます。(エラー・メッセージが表示される場合は、「
戻る」を クリックして入力した接続情報を修正してください。)
- 「
終了」をクリックします。
|
トピック・リストに戻る
データベー ス接続の作成
Java Database Connectivity (JDBC)は、Javaアプリケーションをリレーショナル・データベースに接続するために使用される標準APIです。Oracle JDeveloperの接続ナビゲータは、アプリケーション用の接続情報を保持します。
HRスキーマへのJDBC接続を作成するには、以下の手順を実行してください。
1.
|
アプリケーション・ナビゲータの「
接続」タブをク リックします。「
接続」タブが表示されていない場合は、JDeveloperのメイン・メニューから「
表示」 →「
接続ナビゲータ」を選択します。
|
2.
|
データベース・ノードを右クリックし、コンテキスト・メニューから「
データベース接続の作成」 を選択します。
| 3.
|
データベース接続の作成ウィザードで、
初期画面の情報を確認してから「
次へ」 をクリックします。
| 4.
|
接続名フィールドに、
hrconn
と 入力します。「
次へ」をクリックして続行します。
| 5.
|
認証ページにおいて、ユーザー名フィールドに
hr
と入力し、パスワード・フィールドに
hr
と入力します。「
パスワードを配布」 をチェックします。
「
次へ」をクリックして続行します。
| 6.
|
接続ページでは、接続のデフォルト値は以下のとおりです。
ドライバ:
Thin
ホスト名:
localhost
JDBCポート:
1521
SID:
ORCL
これらのデフォルト値はそのままにしてください。
「
次へ」をクリックして続行します。
| 7. |
「
接続のテスト」をクリックします。
データベースが使用可能で接続の詳細が正しい場合、ステータスに
成功と 表示されます。
エラーが発生した場合、接続設定を確認します。「
戻る」をクリックして必要な変更を行い、接続を再試行して ください。
接続に成功したら、「
終了」をクリックして接続を完了します。
|
|
これで、データベースへの接続を作成しました。次に、このデータベースにPL/SQLパッケージをインストールします。
|
データベースへのPL/SQLパッケージのインストール
前提条件に提示したとおり、tempディレクトリには
EMP_PACKAGE.sqlファイルがコピーされています。 まだコピーが済んでいない場合は、
こちらでファイルを入手してください。
HRスキーマにPL/SQLパッケージをインストールするには、以下の手順を実行して ください。
1.
|
まだ開いていない場合は、接続ナビゲータでデータベース・ノードを開き、作成した
hrconn接 続を右クリックします。コンテキスト・メニューから「
SQL*Plus」を選択します。
|
2.
|
パスワードの入力を指示されたら、
hrと入力します。[Enter]を押します。
| 3.
|
tempディレクトリ にダウンロード済みの
EMP_PACKAGE.sq
l
ファイルを実行します。
データベースにパッケージが作成されます。
| 4.
|
接続ナビゲータで、
hrconnノードを開き、
HRスキーマ・ ノードを開きます。
パッケージ・ノードまでスクロール・ダウンし、これを開きます。インストールしたパッケージが表示 されます。
|
トピック・リストに戻る
Webサービス用新規アプリ ケーションの作成
作成予定のWebサービスを保持するためのアプリケーションとプロジェクトを作成する必要がありま す。
以下の手順を実行して、アプリケーションとプロジェクトを作成します。
1.
|
アプリケーション・ナビゲータで
アプリケーション・ノードを右クリックし、コンテキス ト・メニューから「
新規アプリケーション・ワークスペース」を選択します。
| 2.
|
アプリケーションの作成ダイアログで、アプリケーション名
PL_SQL_WSを 入力します。
アプリケーション・テンプレート・フィールドで、「
No Template [All Technologies]」が選択されていることを確認します。
「
OK」をクリックします。
| 3.
|
プロジェクトの作成ダイアログで、プロジェクト名
GetEmployeeを 入力し、「
OK」をクリックします。
| 4. |
アプリケーション・ナビゲータは、次のように表示されます。
|
トピック・リストに戻る
WebサービスとしてのPL/SQLパッケージの公開
PL/SQLパッケージからWebサービスを作成するには、以下の手順を実行してください。
1.
|
接続ナビゲータで、
EMP_FETCHERパッケージ・ノードを開き、
EMP_FETCHERを 右クリックします。これは、パッケージのヘッダー部分です。コンテキスト・メニューから「
開く」を選択します。
| 2. |
コード・エディタが開き、パッケージ・ヘッダー用のコードが表示されます。そのコードは、PL/SQLパッケージが従業員 番号用の入力値を取得し、その従業員用のレコードを返すことを示しています。
| 3. |
接続ナビゲータで、
EMP_FETCHER →
EMP_FETCHERノー ドを右クリックし、「
Webサービスとして公開」オプションを選択します。
| 4. |
J2EE Webサービスのバージョンを選択で、「
J2EE 1.4 (JAX-RPC)」 を選択して「
OK」をクリックします。
| 5. |
PL/SQL J2EE Webサービスを作成ページの初期画面で、「
次へ」をクリッ クします。
| 6. |
ウィザードのステップ1で、
ターゲット・プロジェクト・リストの「
GetEmployee.jpr」 プロジェクトが選択されていることを確認し、「
次へ」をクリックします。
Oracle JDeveloperについて、デフォルトでは稼働中のプロジェクト名になることに注意してください。
| 7. |
ステップ2で、Webサービス名を
EmpWebServiceに設定し、「
SOAP 1.1.Binding」が選択されていることを確認します。「
次へ」をクリックします。
| 8. |
ステップ3では、「
次へ」をクリックしてデフォルト・オプションを受け入れます。
| 9. |
ステップ4で、Webサービスとして公開する「
GET_EMP」機能をチェックしま す。「
次へ」をクリックします。
| 10. |
ステップ5では、「
次へ」をクリックしてデフォルト型マッピングを受け入れます。
| 11. |
ステップ6では、このWebサービスにはユーザー定義型マッピングは必要とされないため、「
次へ」 をクリックします。
| 12. |
ステップ7では、「
次へ」をクリックしてデフォルトを受け入れ、「
終 了」をクリックします。
| 13. |
Webサービス
EmpWebServiceが作成され、設計エディタで
EmpWebService .wsdl
ファ イルが開きます。
| 14. |
アプリケーション・ナビゲータで
EmpWebServiceノードをクリックし、構造 ペインを開いてこのWebサービス用に生成された要素を表示します。
EmpWebServiceBase.javaク ラスには、すべてのデータベース接続パラメータが含まれます。Webサービス・ジェネレータは、JPublisherを使用してWebサービスを生成しま す。
| 15. |
設計エディタのWSDLに戻り、いくつかのノードを開いてWebサービスとして公開されたパッケージの詳細を表示させま す。
ダイアグラムのバインド・セクションでは、入力および出力エントリをクリックします。
WebServicesエンジンは、パッケージおよびメソッドをこのWSDL記述から呼び出す方法について認識していま す。
WSDL設計エディタ上部の「
EmpWebService」タブをダブルクリックし、 設計ペインを以前のサイズに縮小します。
| 16. |
WSDLの下部にある「
ソース」タブをクリックし、「
soap:address location
」 タグまでスクロール・ダウンします。すると、次のように表示されます。
http://<your machine name>/PL_SQL_WS-GetEmployee-context-root/EmpWebServiceSoapHttpPortこ のURLをクリップボードにコピーします。これは、次のトピックで使用します。
|
|
これで、WSDLが生成されました。基礎になる実装は、PL/SQLパッケージでもJavaクラスでも問題ありません。 Webサービスの利点は、サービスの基礎になる実装から抽象化される点にあります。
|
トピック・リストに戻る
Webサービスの配布およびテスト
作成したWebサービスを配布およびテストするには
、以下の手順を実行し てください。
1.
|
アプリケーション・ナビゲータで、
リソース・ノードを開きます。
WebServices.deployを 右クリックし、コンテキスト・メニューから「
配布先」→「
oc4jconn」を選 択します。
(
注:これは、OC4Jを起動済みで、
前提条件で 説明したように、OC4Jへの接続が作成済みであることを前提としています。)
アプリケーションを設定ダイアログで、「
OK」をクリックします。
ログ・ウィンドウが、配布の成功を表示します。
| 2.
|
ブラウザを開いて、上述のWSDLファイルからコピーしたURLを貼り付けます。これは、OC4Jによって生成された EmpWebServiceのエンドポイント・ページです。
EmpWebServiceのエンドポイント・ページが表示されます。
getEmpオ ペレーションに注目してください。
| 3. |
ページに、オペレーションで指定できるパラメータの領域が表示されます。ボックスに、数字の
100を入力すると、ID 100の従業員のレコードを返します。「
起動」 をクリックします。
| 4. |
Webサービスの起動後、ウィンドウにテスト結果を含むSOAPエンベロープが表示されます。これは、組織の社長であり、 従業員IDが100である、King氏のレコードです。
| 5. |
異なる値でgetEmpメソッドを再テストします。
- 「
戻る」をクリックして、getEmpページへ戻ります。
- パラメータ値フィールドに数字の
120を入力し、異なる 従業員を返します。
- 「
起動」をクリックします。
- テスト結果ページに結果が表示されます。これは、従業員IDが120である、Weiss氏のレコードです。
|
まとめ
このチュートリアルでは、Oracle JDeveloperを使用してPL/SQLパッケージからWebサービスを作成しました。そして、WebサービスをOC4Jに配布し、ブラウザでテスト を行いました。
関連情報
Webサービスの使用について、詳しくは以下のOTNのWebサイトを参照してくださ い。
このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。
|