PL/SQL Webサービスの作成について

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カーソルはサポート対象外

次の例のように、戻り型にrefカーソルを使用しているパッケージから、Webサービスを作成することはできません。

PACKAGE TEST AS
type EmpCurType is ref cursor;
function EmpData return TEST.EmpCurType;
END;

問題のあるPL/SQLの型

PL/SQLパッケージに特定の要素がある場合、Webサービスとしてデプロイするのに適しません。 具体的な要素の種類と問題の回避方法は、「PL/SQLの型とWebサービス」の説明を参照してください。

SYSスキーマからのWebサービスの作成は不可能

任意のユーザーがSYS権限を引き継ぐことを防ぐため、中間層からはSYS権限のある接続を特定できません。つまり、SYSスキーマ内のパッケージからはWebサービスを作成できません。

たとえば、JDeveloper内にWebサービスを作成するために、中間層からSYSスキーマ内のPL/SQLパッケージにアクセスする必要がある場合には、SYSとしてデータベースにログオンし、自分の使用するユーザーにパッケージのEXECUTE権限を付与し、JDeveloperデータベース接続を作成します。

 

Copyright © 1997, 2004, Oracle. All rights reserved.