JDeveloperのPL/SQL Webサービスの作成ウィザードを使用すると、オブジェクト型を使用するPL/SQLパッケージまたはJavaストアド・プロシージャからWebサービスを生成し公開するまでの操作が容易になります。 レコードを使用するパッケージからWebサービスを作成する方法の詳細は、「PL/SQLレコードからのPL/SQL Webサービスの作成」を参照してください。
Javaストアド・プロシージャは、SQL仕様によって定義および起動されます。PL/SQL Webサービス・ウィザードでは、これらの処理がパッケージと同様に扱われます。 PL/SQL Webサービスは、OC4JにもOracle Application Serverにもデプロイできます。
PL/SQL Webサービスの作成ウィザードでは、PL/SQLをJavaでラップするJPublisherの機能を使用して、サービスを公開します。 JPublisherの詳細は、「JPublisherについて」を参照してください。
次のいずれかの方法を使用できます。
注意: PL/SQL Webサービスの編集は、データベース接続が存在している間に行わないと、エラー・メッセージが表示されます。 データベース接続が削除されている場合は新規に作成し、削除前と同じ名前を付与します。
JDeveloperで生成されたファイルを確認するには、「Webサービスで生成されるファイル」の説明を参照してください。
PL/SQL Webサービスのデプロイ方法は、他のJ2EE Webアプリケーションのデプロイと同じです。 詳細は、「J2EE WebサービスのOC4Jへのデプロイ」を参照してください。
Oracle9i Databaseリリース2(9.2)では、同じ名前とパッケージ名を持つストアド・プロシージャまたはストアド・ファンクションに複数のスキーマからアクセスできる場合、PL/SQL Webサービスの公開中に起動されたSQLJトランスレータは異常終了します。
この問題を解決するには、公開するパッケージが1つのスキーマのみで認識されるようにし、他のスキーマのパッケージで同じ名前を使用しないようにしてください。
次の例のように、戻り型にrefカーソルを使用しているパッケージから、Webサービスを作成することはできません。
PACKAGE TEST AS
type EmpCurType is ref cursor;
function EmpData return TEST.EmpCurType;
END;
PL/SQLパッケージに特定の要素がある場合、Webサービスとしてデプロイするのに適しません。 具体的な要素の種類と問題の回避方法は、「PL/SQLの型とWebサービス」の説明を参照してください。
任意のユーザーがSYS権限を引き継ぐことを防ぐため、中間層からはSYS権限のある接続を特定できません。つまり、SYSスキーマ内のパッケージからはWebサービスを作成できません。
たとえば、JDeveloper内にWebサービスを作成するために、中間層からSYSスキーマ内のPL/SQLパッケージにアクセスする必要がある場合には、SYSとしてデータベースにログオンし、自分の使用するユーザーにパッケージのEXECUTE権限を付与し、JDeveloperデータベース接続を作成します。
Copyright © 1997, 2004, Oracle. All rights reserved.