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

JDeveloperのWebサービス公開ウィザードを使用すると、オブジェクト型を使用するPL/SQLパッケージまたはJavaストアド・プロシージャから、Webサービスを簡単に生成して公開できます。レコードを使用するパッケージからWebサービスを作成する詳細は、「PL/SQLレコードからのPL/SQL Webサービスの作成」を参照してください。

Javaストアド・プロシージャは、コール元のSQL仕様によって定義されます。PL/SQL Webサービス公開ウィザードでは、Javaストアド・プロシージャをパッケージと同様に扱います。PL/SQL Webサービスは、OC4JまたはOracle9i Application Serverにデプロイできます。

PL/SQL Webサービス公開ウィザードは、JPublisherの機能を使用してPL/SQLをJavaでラップし、サービスを公開できるようにします。JPublisherの詳細は、「JPublisherについて」を参照してください。

次のいずれかの方法を使用できます。

JDeveloperによって次のファイルが生成されます。

PL/SQL Webサービスのデプロイ方法は、他のJ2EE Webアプリケーションのデプロイと同じです。オンライン・ヘルプの「JDeveloperを使用したパッケージおよびデプロイ」のブックにある、「J2EE WebサービスのOC4Jへのデプロイ」を参照してください。

制限

複数のスキーマからアクセスできる同じ名前のストアド・プロシージャ

Oracle9i Databaseリリース2(9.2)では、同じ名前とパッケージ名を持つストアド・プロシージャまたはストアド・ファンクションに複数のスキーマからアクセスできる場合、PL/SQL Webサービスの公開中に起動されたSQLJトランスレータは異常終了します。

この問題を解決するには、公開するパッケージが1つのスキーマのみで認識されるようにし、他のスキーマのパッケージで同じ名前を使用しないようにしてください。

問題のあるPL/SQLの型

PL/SQLパッケージに特定の要素がある場合、Webサービスとしてデプロイするのに適しません。それらの要素と対処方法の詳細は、「PL/SQLの型とWebサービス」を参照してください。

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

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

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