Oracle Application Server 10gへ
のWebサービスのデプロイ
このチュートリアルでは、Webサービス・アプリケーションを
Oracle Application Server 10gにデプロイする方法およびWebサービスをUDDIレジストリに公開する
方法を説明します。
約30分
このチュートリアルの内容は次のとおりです。
このアイコ
ンの上にカーソルを置くと、このチュートリアルのすべてのスクリーンショットが表示されます。 (注意:
この操作によりすべてのスクリーンショットが同時に読み込まれるため、使用しているインターネット接続の種類によっては応答が遅い場合があります。)
注意:
各手順に関連するスクリーンショットのみを表示する場合は、それぞれの手順のアイコンの上にカーソルを置いてください。
このチュートリアルを始める前に、次のことを実行しておく必要がありま
す。
| 1. |
Microsoft Windows
2000 Service Pack 3以降のOSを搭載したマシンにアクセスします。 |
| 2. |
Oralce Application
Server 10g Infrastructureをインストールします。 |
| 3. |
Oralce Application
Server 10g Portal and Wirelessをインストールします。 |
| 4. |
UDDI問合わせサーブレット・エンドポイントをpingすることで、UDDIレジストリの初期
化と構成を行います。 ブラウザ・ウィンドウを開いて、次のURLを入力します。
http://<hostname>:<domain>:<HTTP
listen port>/uddi/inquiry
注意: 通常、Windowsインストールの場合、HTTPリスン・ポートは80です。
「OracleAS UDDI Registry」ページが表示されます。
次のようなメッセージが表示されます。
"Welcome! Your registry is now up and running."
|
| 5. |
Oracle database 10gを
インストールします。 Oracleデータベースには、scottというスキーマが格納されている必要があります。 |
| 6. |
webservices.zipファ
イルを作業ディレクトリE:\wkdirに解凍します。
|
| 7. |
Antを
ダウンロードしインス
トールします。これは、Javaアプリケーションのコンパイルや実行に使用されるプログラムです。
このOBEでは、Antバージョン1.6.2を使用します。
注意:Antのインストール時に提示されるとおり、ANT_HOMEという環境変数を作成し、これをAnt
をインストールしたディレクトリに設定してANT_HOME\binディ
レクトリをPATHに追加してくださ
い。
コマンド・プロンプトを開き、次のコマンドを実行します。
注意:コマンド実行中に、インストール・フォルダのようにフォルダ名の変更が必要な場合
があります。
set
ANT_HOME=E:\apache-ant-1.6.2-bin\apache-ant-1.6.2
set PATH=%PATH%;%ANT_HOME%\bin

|
| 8. |
ORACLE_HOMEと
いう環境変数を、データベースをインストールしたディレクトリに設定し、 PATHにORACLE_HOME\binを追加します。
set
ORACLE_HOME=E:\oracle\product\10.1.0\db_1
set PATH=%PATH%;%ORACLE_HOME%\bin
|
| 9. |
データベース・サービスが稼働していることを確認します。 scottスキーマに接続し、スクリプトcreate.sqlを実行します。
cd
E:\wkdir\webservices\server\sql
sqlplus scott/tiger
@create
plsqlWebサービスの実行に必要なオブジェクトが作成されます。

|
| 10. |
JAVA_HOMEを
環境変数に追加してこれをORACLE_HOME\jdkに
設定し、 JAVA_HOME\binをPATHに追加します。
set
JAVA_HOME=%ORACLE_HOME%\jdk
set
PATH=%PATH%;%JAVA_HOME%\bin

|
| 11. |
J2EE_HOMEを
環境変数に追加し、これを<oracleas_portalhome>\j2ee\homeに設定します。
set
J2EE_HOME=E:\portal_home\j2ee\home
注意: すべての環境変数が設定されているため、コマンド・プロンプトはOBE
を通して同じものを使用してください。
|
トピック・リス
トに戻る
OracleAS 10g Web
Services
10gには、Webサービスの開発、デプロイおよび管理用にスケーラビリティの高いランタイム・インフラストラクチャが実装されています。
OracleAS 10gは、RPCスタイルWebサービスとして、ステートレスおよびステートフルJavaクラス、ス
テートレスSession Bean、ステートレスPL/SQLストアド・プロシージャに対応しています。
また、ドキュメント・スタイルWebサービス(ステートレス/ステートフルJava、JMS)にも対応しています。 WebServicesAssemblerツールには、
OracleAS 10gにデプロイできるJ2EE
EARファイルとしてJavaおよびPL/SQLWebサービスがパッケージされています。
OracleAS 10gランタイムで
は、デプロイ処理中に自動的にWebサービスのエンドポイントのホーム・ページが生成されます。
このホーム・ページは中央ステーションとなり、リンクから、(i) WSDLファイル、(ii)ダウンロード可能な静的Java
クライアント・プロキシ、(iii) Javaクライアント・プロキシ・ソース、(vi)Webサービスのテスト・ページにアクセスできます。
Oracle Enterprise Manager 10gも
強化したため、新しく公開されたJ2EE製品をWebサービスとしてデプロイおよび管理することができます。 OracleAS 10g
UDDIレジストリは、完全準拠のUDDI v1レジストリとなり、Webサービスの公開、問合せ、検索を行う機能を提供します。
トピック・リス
トに戻る
Webサービス・アプリケーションでは、ステートレスJava、ステート
フルJava、ステートレスSession
EJB、ステートレスPL/SQLプロシージャを構築できる4つの型のWebサービスを使用する方法を説明します。
アプリケーションには次のファイルが含まれます。
 |
server/ - Webサービス・サーバー・コンポーネント
|
|
 |
sql/ - PL/SQLWebサービスのSQLスクリプト
|
|
|
- |
create.sql - メイン・スクリプト(これを実行します。)
|
|
|
- |
create.sql - 表作成スクリプト
|
|
|
- |
create.sql - パッケージ作成スクリプト
|
|
|
- |
create.sql - パッケージ・ボディ作成スクリプト
|
|
|
- |
drop.sql - 作成したものすべての削除
|
|
|
- |
insert.sql - 必要なデータの従業員表への挿入
|
|
 |
wsejb/ - EJBWebサービスのHelloEJB
|
|
|
- |
META-INF/
|
|
|
|
- ejb-jar.xml - EJBデプロイメント・ディスクリプタ
|
|
|
- |
HelloEJB.java - HelloEJBリモート・インタフェース
|
|
|
- |
HelloEJBHome.java - HelloEJBホーム・インタフェース
|
|
|
- |
HelloEJBBean.java - HelloEJB Bean実装
|
|
 |
server/ - Webコンポーネント
|
|
|
- |
WEB-INF/
|
|
|
|
- classes/
|
|
|
|
- Hello.java - ステートレスJavaWebサービス・インタフェース - HelloImpl.java - ステートレスJava Webサービス実装 - Count.java - ステートフルJava Webサービス・インタフェース - CountImpl.java - ステートフルJava Webサービス実装 - CompanyInterface.java - PL/SQL Webサービス・インタフェース
|
|
 |
config.xml - WebServices Assemblerツールが使用する構成ファイル
|
|
 |
build.xml - サーバー・コンポーネント用にAntが使用するビルド・ファイル
|
 |
client/ - Webサービス・クライアント・コンポーネント
|
|
 |
HelloClient.java - ステートレスJava Webサービス・クライアント
|
|
 |
CountClient.java - ステートフルJava Webサービス・クライアント
|
|
 |
EJBWSClient.java - EJB Webサービス・クライアント
|
|
 |
PLSQLClient.java - PLSQL Webサービス・クライアント
|
|
 |
build.xml - サーバー・コンポーネント用にAntが使用するビルド・ファイル
|
 |
common.xml - Ant用共通セットアップ・ファイル
|
| 1. |
HelloEJBが
どのように実装されているか確認します。
|
| 2. |
E:\wkdir\webservices\server\wsweb\WEB-INF\classesに
あるクラスを確認して、どのように実装されているか理解します。
|
| 3. |
E:\wkdir\webservices\server\config.xmlを
確認して、どのように各種のWebサービス(ステートレスJava、ステートフルJava、ステートレスSession
EJBおよびステートレスPL/SQLストアド・プロシージャ)が定義されているか理解します。
|
| 4. |
データベースの設定: E:\wkdir\webservices\server\sqlに
あるSQLスクリプトを確認します。 これらのスクリプトにより、PL/SQL
Webサービスにより要求されるデータベース表、パッケージ、型およびプロシージャが作成されます。
データベース・オブジェクトはすでにscott/tigerスキーマに作成されています。
|
| 5. |
Webサービス・アプリケーションはすでに構築されています。 EARファイルはE:\wkdir\webservices\server\build(wsapp.ear)
にあります。
|
| 6. |
再コンパイルが必要な場合は、antツー
ルをE:\wkdir\webservices\serverか
ら実行して、Webサービス・アプリケーションを構築します。 Antは次の動作を行います。
 |
EJBモジュールの構築 |
| |
 |
Hello EJBクラスのコンパイル |
| |
 |
EJB Jarファイルのパッケージ化 |
 |
PL/SQL WebサービスのJARファイルの構築 |
| |
 |
JPublisherを使用し、データベース・パッケージ、型およびプロシージャ
を表すJavaおよびSQLJファイルを生成します |
| |
 |
SQLJプリコンパイラを使用し、生成されたSQLJファイルをJavaに変換し
ます |
| |
 |
生成されたJavaクラスをすべてコンパイルします |
| |
 |
JavaクラスをJARファイル(PL/SQLパッケージ)にパッケージします |
 |
ステートレスおよびステートフルJava
Webサービス(インタフェースおよび実装)用のJavaクラスをコンパイルします。 |
 |
WebServicesAssemblerツールをコー
ルして、Webモジュールを構築し、web.xmlディスクリプタ(型が異なるWebサービスに対してサーブレット・エントリ・ポイントを定義する)を生
成します。 すべてをEARファイルにパッケージします。 |
|
| 7. |
圧縮ツール(winzipなど)を使用して、生成されたwsapp.earファイルを確認します。
WebServicesAssemblerで生成されたwsapp_web.war\WEB-INF\web.xmlファ
イルを詳細に調べ、次の型のWebサービスのサーブレット・エントリ・ポイントがどのように定義されているか理解し、各型のWebサービスを実装するコン
ポーネントを判別します。
 |
ステートレスJavaクラス |
 |
ステートフルJavaクラス |
 |
ステートレスSession EJB |
 |
ステートレスPL/SQLストアド・プロシージャ |
|
トピック・リス
トに戻る
| Oracle Application Server
10gには、Oracle Application Server UDDI Registry(OracleAS UDDI
Registry)というUniversal Discovery Description and Integration(UDDI)
Webサービス・レジストリが実装されています。 OracleAS UDDI
Registryを使用すると、Webサービス・コンシューマ(アプリケーション・プログラマ)向けにWebサービスを公開できます。
Webサービス・コンシューマは、UDDI問合わせインタフェースを使用して、公開されたWebサービスを検索し、これらのサービスを特定の企業プロセス
でアプリケーションに使用できます。 このセクションでは、UDDIレジストリの参照方法を学びます。 |
| 1. |
ブラウザを開いて、次のURLを入力します。 http://<hostname>.<domainname>:1810/。
注意:管理ポート番号はOracle AS 10gのインストール中に自
動的に割り当てられるため、ここでのポート番号とは異なる場合があります。 ユーザー名およびパスワードの入力を求められた場合は、ias_adminと、アプリケーション・サーバーをイ
ンストールした際に指定したパスワードを入力します(例:
welcome1)。

|
| 2. |
「OracleAS
Farm」のページが表示され、マシンのアプリケーション・サーバー・インスタンスが一覧表示されます。
ポータル・インスタンスへのリンクをクリックして、「Portal Home」のページに進みます。

ユーザー名およびパスワードの入力を求められたら、ias_adminと、アプリケーション・サーバーをイ
ンストールした際に指定したパスワードを入力します。
|
| 3. |
Enterprise Manager 10g
Application Server Control Console for Portalが表示されます。

「System Components」表で、「OC4J_Portal」
リンクをクリックします。

|
| 4. |
「Home」のページはポータルOC4Jインスタンスの最初
の管理ページで、状態およびパフォーマンス情報が掲載されています。 「Applications」のページには、コ
ンテナにデプロイされているアプリケーションのリストおよびこれらのアプリケーションの使用とパフォーマンスに関する情報が掲載されています。 「Administration」
のページには、構成情報の表示と変更を行うためのリンクがあります。

|
| 5. |
「Administration」タブをクリックします。

|
| 6. |
「Related Links」の下にある「UDDI Registry」
をクリックします。.

|
| 7. |
OracleAS UDDI
Registryは、tModels、businessEntities、businessServicesの分類に関し、次の標準分類法をサポートして
います
- 北米工業分類システム(NAICS)
各業界と対応コードの分類システムです。
- 国際標準製品/サービス分類コード(UNSPSC)
地球規模の市場全体で使用するために製品およびサービス両方を分類する最初のコーディング・システムです。
- ISO 3166 Geographic Taxonomy
すべての国々とその地域のリストです。
Click 「North American Industry
Classification System(NAICS)」をクリックします。.

|
| 8. |
NAICS分類法には多くのカテゴリがあります。
カテゴリと各コードが表にリストされています。 カテゴリ名をクリックするとサブカテゴリを表示できます。
特定のカテゴリで公開されているWebサービスを表示するには、カテゴリを選択し「View Services」をクリックしてください。
このOBEでは、Webサービスを「Wholesale Trade」カテゴリに公開します。

|
トピック・リス
トに戻る
DataSourceを作成するには、次の手順を実行します。
| 1. |
ブレッドクラム内の「OC4J: OC4J_Portal」をクリックして、ポー
タルOC4Jホームに戻ります。

|
|
2.
|
データソースの追加または変更を行うには、「Administration」
タブをクリックします。

|
| 3. |
「Administration」タブのページで、下にスク
ロールして「Data Sources」をクリックします。

|
| 4. |
「Data Sources」のページで、「OracleDS」ラジオ・ボタンを
選択し「Edit」をクリックします。

|
| 5. |
「Edit Data Source」
のページで、「OracleDS Data
Source」フィールドを変更してデータベースを特定します。 データソース・ユーザー名にscott、
パスワードにtigerを使用します。 下にスクロールして「Apply」をク
リックします。 このデータソースは、PL/SQLWebサービスが使用します。


|
| 6. |
確認ページで「Yes」をクリックしてOC4Jサーバーを再開します。

|
| 7. |
ポータルOC4Jの再開処理中に進捗状態を示すページが表示されます。その後、ホームOC4Jイ
ンスタンスが再開されると確認ページが表示されます。 確認ページで「OK」をクリックします。


|
トピック・リス
トに戻る
| 1. |
データソースのページに戻ります。 ブレッドクラム内の「OC4J:
OC4J_Portal」リンクをクリックして、OC4Jインスタンス構成のページに戻ります。

「Applications」ページに移動します。
|
| 2. |
「Deploy EAR File」をクリックしてデプロイ・ウィザードを起動し
ます。このウィザードではアプリケーションのデプロイに必要な手順が指示されます。

|
| 3. |
「Deploy Application」のページで「Browse...」
をクリックし、デプロイするEARファイルとして、E:\wkdir\webservices\server\buildディ
レクトリからwsapp.earを選択
します。 アプリケーション名としてwsappと
入力します。 「Continue」をクリックします。

|
| 4. |
「Deploy Application: URL Mapping for
Web Modules」のページで、
/wsappがアプリケーションのURLマッピングに指定されているかチェックします。 「Next」をクリックし
ます。

|
| 5. |
「Deploy Application: Resource
Reference Mappings」のページで、JNDI場所としてjdbc/OracleDSを入力します。これ
により、jdbc/wsDSデータソース(PL/SQL
Webサービスによって使用されます)が前の手順で定義されたjdbc/OracleDSに
マップされます。 「Next」をクリックします。

|
| 6. |
Oracle Application Server 10gに
は、J2EEアプリケーション・セキュリティ管理に使用できるJAASユーザー・プロバイダが実装されています。 これはOracle
Application Server 10gのデフォルトのユーザー・マネージャ・サービスで、JAZNとして知られ
ています。 「Deploy Application: User Manager」のページで、デフォルト設定「Use
JAZN XML User Manager」を適用します。 「Next」をクリックします。

|
| 7. |
アプリケーションに対し、Webサービスが3つ表示されます。
ただし、Webサービスはすべて未公開です。 最初のWebサービスを選択して「Publish」をクリックします。

|
| 8. |
「Service Details」セクションで、「Name」にcount、
「Code」に42(NAICS分類におけるWholesaleのコード)を入力します。 「TModel
Details」セクションで、「Name」にCount、「Code」に42を入力します。 「OK」をク
リックします。

|
| 9. |
このWebサービスが公開されたことが確認できます。
同様に、残りの2つのWebサービスを公開します。

|
| 10. |
Webサービスをすべて公開した後、「Next」をクリックします。

|
| 11. |
「Deploy Application: Review」
ページで、デプロイ情報サマリー(ソース/ターゲット、リソース・マッピングなど)を確認します。
アプリケーションが3つのWebサービス・モジュールを含んでいることに注意してください。 「Deploy」をクリックして、アプリケー
ションをOracle Application Server 10gにデプロイします。

|
| 12. |
「Processing: Deploy」ページが表示され
ます。

確認ページで「OK」をクリックします。

|
| 13. |
確認ページで「OK」をクリックすると、OC4Jインスタン
スの「Applications」のページが表示されます。 wsappが「Deployed
Applications」リストに表示されます。

デプロイ済アプリケーションのリストからwsappを選択します。

|
| 14. |
「Application: wsapp」ページで、
「Web Modules」リストからwsapp_webエントリを選択します。

|
| 15. |
「Servlets/JSPs」セクションまで画面を下にスクロールします。 「Properties」
の下にある「Mapping」をクリックします。

|
| 16. |
「Mappings」ページに、各WebサービスのServlet URLマッ
ピングが表示されます。 ブラウザの「Back」ボタンをクリックして、「Application: wsapp」のページ
に戻ります。

|
| 17. |
「Properties」の下にある「Environment」を
クリックして、デプロイ時に定義したデータソースJNDIマッピングを確認します。

ブラウザの「Back」ボタンをクリックして、「Application:
wsapp」のページに戻ります。

|
| 18. |
「Advanced Properties」をクリックして、どのようにデータ
ソースがorion-web.xmlファイルにマップされるか確認します。


|
トピック・リス
トに戻る
| 1. |
ブレッドクラムで「OC4J: OC4J_Portal」をクリックして、
「OC4J Home」のページに戻ります。

|
| 2. |
「Administration」をクリックして、
「Administration」ページを表示します。

|
| 3. |
「Related Links」の下にある「UDDI Registry」をク
リックして、UDDIレジストリを参照します。

|
| 4. |
ここまでの手順で、WebサービスをNAICS分類法のWholesale Tradeの
カテゴリに公開しましたので、 「North American Industry Classification System(NAICS)」
をクリックします。

|
|
5.
|
NAICS分類のすべてのカテゴリが表示されます。 「Wholesale Trade」
カテゴリを選択し、「View Services」をクリックします。

|
| 6. |
このカテゴリに登録したすべてのWebサービスが表示されます。

「count」Webサービスをクリックします。

|
| 7. |
WebサービスをUDDIに公開する際に指定した内容が表示されます。

|
トピック・リス
トに戻る
ここまでの手順で、アプリケーションをテストする準備が整いました。
Oracle Web Cacheポート(通常は80)を使用して、URLリクエストでアプリケーションを実行し、テストを開始します。 注意:
Web Cacheポートは異なる場合があります(Web CacheのHTTPリスン・ポートを確認するには、Enterprise Manager
10g Application Server Control Consoleの「Port」タブをクリックして、Web
CacheコンポーネントのHTTPリスン・ポートを検索します)。 Oracle Web Cacheでアプリケーションを実行します。
次の手順を実行してください。
| 1. |
ブラウザを開き、http://<hostname>:80/wsapp/と
入力して、ブラウザからWebサービス・アプリケーションを実行します。 このページは、Web Services
Assemblerにより生成されたページです。
異なる4つの型のWebサービス(ステートレスJava、ステートフルJava、ステートレスSession
EJB、ステートレスPL/SQLプロシージャ)が表示されます。

「stateless Java web service -
/wsapp/helloService」をクリックして、ステートレスJava Web サービスのページに進みます。

|
| 2. |
オプションにより、「Service Description」リンクをクリック
すると、WebサービスのWSDLファイルを表示できます。 WSDLドキュメントのXML要素を確認します。
「sayHello」をクリックして、ステートレスJava
Webサービスをテスト実行します。

|
| 3. |
「Value」フィールドに任意の文字列を入力し「Invoke」
をクリックします。

|
| 4. |
ステートレスJava Webサービスにより返されたSOAP結果メッセージが表示されます。
表示の確認後、このウィンドウを閉じます。

|
| 5. |
ブラウザの「Back」ボタンをクリックして、helloService
Webサービスのホーム・ページに戻ります。

|
| 6. |
「Proxy Jar」を右クリックし、「Save Target As…」
を選択してOC4Jにより生成されたプロキシjarファイルをダウンロードします。 このファイルにhelloService.jarと名前を付け、E:\wkdir\webservices\clientディ
レクトリに保存します(必ずファイル拡張子を.jarに変更してください)。
このjarファイルは、スタンドアロンWebサービス・クライアント・アプリケーションの構築に必要となります。


|
| 7. |
「Web Services Home」のページに戻り、「stateful Java
web service - /wsapp/countService」をクリックします。.

|
| 8. |
「count」をクリックして、ステートフルWebサービスをテスト実行します。

|
| 9. |
「Invoke」をクリックします。

|
| 10. |
新規ウィンドウに、Webサービスにより返されたSOAP結果が表示されます。

|
| 11. |
ページを再ロード(またはリフレッシュ)します。
ページを再ロードするたびにカウンタが強調表示され、数字の増加を確認できます。 確認後、ウィンドウを閉じます。


|
| 12. |
生成されたプロキシJarにcountService.jarと名前を付けてE:\wkdir\webservices\clientディ
レクトリに保存します。


ブラウザの「Back」ボタンをクリックして、「Web Services
Home」ページに戻ります。 「stateless session bean web service」をクリックします。 EJB
WebサービスはステートレスJava Webサービスとほとんど同じですが、EJBWebサービスがステートレスSession
Beanで実装されるという点だけが異なります。 生成されたプロキシJarにejbService.jarと名前を付けてE:\wkdir\webservices\clientディ
レクトリに保存します。 手順は同じであるため、OBEには記載しません。
|
| 13. |
「Web Services Home」のページに戻り、「stateless
PLSQL web service - /wsapp/plsqlService」をクリックします。

|
| 14. |
「Company Web Service Home」のページで「getemp」
をクリックします。

|
| 15. |
「Value」フィールド(従業員ID)に1234 と入力し、「Invoke」
をクリックします。

|
| 16. |
PLSQLWebサービスにより返されたEMPLOYEES表の行を表すSOAP結果メッセージが表示さ
れます。 表示の確認後、ウィンドウを閉じます。

生成されたプロキシJarにplsqlService.jarと
名前を付けてE:\wkdir\webservices\clientディ
レクトリに保存します。
|
トピック・リス
トに戻る
| 1. |
ここでは、スタンドアロンJavaアプリケーションを構築し、デプロイされたWebサービスにア
クセスします。 E:\wkdir\webservices\clientディ
レクトリに次のWebサービス・スタブ・ファイル(プロキシJarリンクから保存)が含まれているか確認します。
 |
helloService.jar |
 |
countService.jar |
 |
ejbService.jar |
 |
plsqlService.jar |
これらのプロキシ・クラスがどのように実装されているか確認します。 E:\wkdir\webservices\clientに
あるクライアント・アプリケーションで、アプリケーションがプロキシ・クラスをコールしてどのようにWebサービスにアクセスするか確認します。
コマンド・プロンプト・ウィンドウを開き、次のコマンドを実行します。
d: cd E:\wkdir\webservices\client ant

|
| 2. |
次のコマンドでクライアント・アプリケーションを一度にすべて実行できます。
ant RunAll
次のコマンドで別々に実行することもできます。
ant RunStateless ant RunStateful ant RunEJB ant RunPLSQL

|
トピック・リス
トに戻る
このレッスンでは、次のことを学びました。
|
UDDIレジストリの参照
|
|
Webサービス・アプリケーションのApplication Server 10gへ
のデプロイおよびWebサービスのOracleAS UDDIレジストリへの公開
|
|
デプロイされたWebサービス・アプリケーションのテスト
|
 |
デプロイされたWebサービスにアクセスするための、Antを使用し
たスタンドアロンJavaクライアントの構築 |
トピック・リス
トに戻る
 |
Webサービスの詳細は、ここをクリックし
てください。 |
このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。
|