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パッケージをインストールします。
|
前提条件に提示したとおり、tempディレクトリにはEMP_PACKAGE.sqlファイルがコピーされています。
まだコピーが済んでいない場合は、こちらでファイルを入手してください。
HRスキーマにPL/SQLパッケージをインストールするには、以下の手順を実行して
ください。
|
1.
|
まだ開いていない場合は、接続ナビゲータでデータベース・ノードを開き、作成したhrconn接
続を右クリックします。コンテキスト・メニューから「SQL*Plus」を選択します。

|
|
2.
|
パスワードの入力を指示されたら、hrと入力します。[Enter]を押します。

|
| 3. |
tempディレクトリ
にダウンロード済みのEMP_PACKAGE.sqlファイルを実行します。
データベースにパッケージが作成されます。
|
| 4. |
接続ナビゲータで、hrconnノードを開き、HRスキーマ・
ノードを開きます。パッケージ・ノードまでスクロール・ダウンし、これを開きます。インストールしたパッケージが表示
されます。
|
トピック・リストに戻る
作成予定のWebサービスを保持するためのアプリケーションとプロジェクトを作成する必要がありま
す。
以下の手順を実行して、アプリケーションとプロジェクトを作成します。
| 1. |
アプリケーション・ナビゲータでアプリケーション・ノードを右クリックし、コンテキス
ト・メニューから「新規アプリケーション・ワークスペース」を選択します。
|
| 2. |
アプリケーションの作成ダイアログで、アプリケーション名PL_SQL_WSを
入力します。
アプリケーション・テンプレート・フィールドで、「No Template [All
Technologies]」が選択されていることを確認します。
「OK」をクリックします。
|
| 3. |
プロジェクトの作成ダイアログで、プロジェクト名GetEmployeeを
入力し、「OK」をクリックします。
|
| 4. |
アプリケーション・ナビゲータは、次のように表示されます。
|
トピック・リストに戻る
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サービスを配布およびテストするには、以下の手順を実行し
てください。
| 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サイトを参照してくださ
い。
このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。
|