| Oracle Application Server Web Services開発者ガイド 10g(10.1.3.1.0) B31868-01 |
|
この章では、Web Service Description Language(WSDL)ファイルから始めてWebサービスをアセンブルする方法について説明します。この方法は、トップダウン方式でのWebサービスの生成とも呼ばれます。
トップダウン方式でのWebサービスのアセンブリでは、公開しようとするビジネス・プロセスがモデリングされている既存のWSDLファイルからサービスを生成します。
WebServiceAssemblerなどの開発ツールは、WSDLを使用してサービスのサービス・エンドポイント・インタフェースを生成します。この後で、Javaクラスなどのサポートされているアーキテクチャ用にそのサービスを実装できます。実装をコンパイルした後、サービスを生成し、アプリケーション・サーバーにデプロイします。
Webサービスをアセンブルするには、WebServiceAssemblerツール、およびJ2SE 1.4 SDKディストリビューションに含まれるjavacコンパイラなどのJavaプラットフォーム・ツールが必要です。
Webサービスをトップダウン方式で生成する場合の一般的な手順は次のとおりです。
この手順はWebServicesAssemblerが実行します。
この手順は開発者が実行します。
この手順はWebServicesAssemblerが実行します。これらの各手順の詳細は、「トップダウン方式でWebサービスをアセンブルする手順」を参照してください。
この項の内容は、次のとおりです。
WebServiceAssemblerを使用してWebサービスをトップダウン方式で生成する場合、指定する必要があるのはWSDLと出力ディレクトリのみです。
Webサービスの生成を開始する前に、次の各事項に注意してください。
serviceNameを使用して、使用対象のサービスを指定できます。
unwrapParametersコマンドライン・オプションが用意されています。
oracle-webservices.xmlデプロイメント・ディスクリプタで必ず定義してください。このファイルを使用して、XMLとJava間でデータを変換するシリアライズ・クラスの名前や、データのJava表現を記述するJavaクラスの名前を識別できます。
関連項目
次の手順は、Webサービスをトップダウン方式でアセンブルする方法を例で示しています。このWebサービスはロギング機能を実現するものです。このロギング機能は、wsdl/LoggingFacility.wsdlにあるWSDLで定義されています。
genInterfaceコマンドへの入力として指定します。 コマンドライン:
java -jar wsa.jar -genInterface -output build/src/service -wsdl wsdl/LoggingFacility.wsdl -unwrapParameters false -packageName oracle.demo.topdowndoclit.service -mappingFileName type-mapping.xml
Antタスク:
<oracle:genInterface wsdl="wsdl/LoggingFacility.wsdl" output= "build/src/service" packageName= "oracle.demo.topdowndoclit.service" mappingFileName="type-mapping.xml" dataBinding="true" unwrapParameters="false" />
このコマンドラインおよびAntタスクの説明:
genInterface: 各ポート・タイプのサービス・エンドポイント・インタフェースと、WSDLに定義された複合型に対応するJava値タイプ・クラス(Bean)を作成します。また、XMLスキーマ型とJava値タイプ・クラス間のマッピングを記述するJAX-RPCマッピング・ファイルも作成されます。「genInterface」を参照してください。
output: 生成されるファイルを格納するディレクトリを指定します。そのディレクトリが存在しない場合は、作成します。「output」を参照してください。
wsdl: WSDLドキュメントの絶対ファイル・パス、相対ファイル・パスまたはURLを指定します。「wsdl」を参照してください。
unwrapParameters: falseに設定すると、生成対象のサービス・エンドポイント・インタフェースが、入力パラメータおよび戻り型をラップするラッパーとともに生成されます。「unwrapParameters」を参照してください。
packageName: JAX-RPCマッピング・ファイルにパッケージ名が宣言されていない場合に、生成されたクラス用に使用されるパッケージ名を指定します。「packageName」を参照してください。
mappingFileName: JAX-RPCマッピング・ファイルを指すファイル位置を指定します。「mappingFileName」を参照してください。
dataBinding: trueの場合、WebServicesAssemblerでは、スキーマ内の全要素に対して、JAX-RPCデフォルト・タイプ・マッピング規則に従うJava値タイプを生成しようとします。「dataBinding」を参照してください。
少なくとも、WSDLの名前を指定します。genInterfaceの必須およびオプションの引数の詳細は、「genInterface」を参照してください。
WSDLに指定されているポート・タイプごとにJavaインタフェースが生成され、複合タイプごとにJavaBeanが生成されます。生成されたインタフェースが格納されるディレクトリの名前は、outputおよびpackageName引数の値に基づいて付けられます。この例の場合、生成されたインタフェースはbuild/src/service/oracle/demo/topdowndoclit/serviceに格納されます。値タイプは指定された出力ディレクトリに格納されますが、パッケージ名は値タイプの名前空間またはJAX-RPCマッピング・ファイルtype-mapping.xml内の値に基づいて付けられます。
javac build/src/service/*.java -destdir build/classes
Javaサービス・エンドポイントには、生成されたJavaインタフェース内のすべてのメソッドと一致するメソッド・シグネチャが必要です。この例では、DocLitLoggerImpl.javaファイルにサービスを作成しているものとします。
たとえば、Implクラスが保存されているディレクトリと同じディレクトリでJavaサービス・エンドポイント・インタフェースのソースが生成された場合は、手順2と同じコマンドを使用できます。そうでない場合は、classpath引数の値を変更する必要があります。
topDownAssembleコマンドを使用してWebServiceAssemblerツールを実行し、サービスをアセンブルします。この例において、doclit_topdownは、生成されたWebサービスのアプリケーション名です。次に例を示します。コマンドライン:
java -jar wsa.jar -topDownAssemble -appName doclit_topdown -wsdl ./wsdl/LoggingFacility.wsdl -unwrapParameters false -className oracle.demo.topdowndoclit.service.DocLitLoggerImpl -input build/classes/service -output build -ear dist/doclit_topdown.ear -mappingFileName type-mapping.xml -packageName oracle.demo.topdowndoclit.service -fetchWsdlImports true -classpath ./build/classes/client
Antタスク:
<oracle:topDownAssemble appName="doclit_topdown" wsdl="./wsdl/LoggingFacility.wsdl" unwrapParameters="false" input="build/classes/service " output="build" ear="dist/doclit_topdown.ear" mappingFileName="type-mapping.xml" packageName="oracle.demo.topdowndoclit.service" fetchWsdlImports="true" > <oracle:portType className="oracle.demo.topdowndoclit.service.DocLitLoggerImpl"/> </oracle:topDownAssemble>
このコマンドおよびAntタスクの説明:
topDownAssemble: WSDL記述をベースにしたWebサービスで必要となるクラスとデプロイメント・ディスクリプタを作成します。これらのファイルは、EARファイル、WARファイル、ディレクトリのいずれにも格納できます。「topDownAssemble」を参照してください。
appName: アプリケーションの名前を指定します。この名前は、通常contextやuriなどの他の引数のベース値として使用されます。「appName」を参照してください。
wsdl: WSDLドキュメントの絶対ファイル・パス、相対ファイル・パスまたはURLを指定します。「wsdl」を参照してください。
unwrapParameters: falseに設定すると、生成対象のサービス・エンドポイント・インタフェースが、入力パラメータおよび戻り型をラップするラッパーとともに生成されます。「unwrapParameters」を参照してください。
input: WEB-INF/classesにコピーされるクラスを格納するJARまたはディレクトリを指定します。この引数は、WebServicesAssemblerによって使用されるクラスパスに追加されます。「input」を参照してください。
output: 生成されるファイルを格納するディレクトリを指定します。そのディレクトリが存在しない場合は、作成します。「output」を参照してください。
ear: 生成されるEARファイルの名前と位置を指定します。「ear」を参照してください。
mappingFileName: JAX-RPCマッピング・ファイルを指すファイル位置を指定します。「mappingFileName」を参照してください。
packageName: JAX-RPCマッピング・ファイルにパッケージ名が宣言されていない場合に、生成されたクラス用に使用されるパッケージ名を指定します。「packageName」を参照してください。
fetchWsdlImports: WSDLとそれにインポートされるものすべてについてローカル・コピーを作成するかどうかを指定します。「fetchWsdlImports」を参照してください。
少なくとも、WSDL名、サービスを実装するクラス名、出力ディレクトリ名を指定します。EARファイルおよびEAR内のWARファイルが出力されます。WARファイルには、サービスのアーチファクト、実装クラス、Webデプロイメント・ディスクリプタ(web.xml)およびJAX-RPCデプロイメント・ディスクリプタ(webservices.xml)が含まれています。topDownAssembleの必須およびオプションの引数の詳細は、「topDownAssemble」を参照してください。
通常の方法でEARファイルをOC4Jの実行中インスタンスにデプロイします。EARファイルのデプロイの詳細は、『Oracle Containers for J2EEデプロイメント・ガイド』を参照してください。次は、デプロイメント・コマンドのサンプルです。
java -jar <oc4jHome>/j2ee/home/admin_client.jar deployer:oc4j:localhost:port <user> <password> -deploy -file dist/doclit_topdown.ear -deploymentName doclit_topdown -bindWebApp default-web-site
次のリストは、このコード例のパラメータの説明です。
<oc4j_Home>: OC4Jインストールが含まれているディレクトリ。
user>: OC4Jのインスタンスのユーザー名。ユーザー名はインストール時に割り当てられます。
<password>: OC4Jのインスタンス用のパスワード。パスワードはインストール時に割り当てられます。
doclit_topdown: アプリケーションの名前。
default-web-site: アプリケーションのバインド先のWebサイト。通常、これはdefault-web-siteになります。Webサイトを構成するには、<oc4j_home>/j2ee/home/configのserver.xmlファイルを参照してください。
genProxyコマンドを使用してWebServicesAssemblerツールを実行し、J2SE Webサービス・クライアントのスタブ(クライアント・プロキシ)を生成します。J2SE Webサービスのクライアント側コードの生成およびアセンブルの詳細は、第15章「J2SE Webサービス・クライアントのアセンブル」を参照してください。
genInterfaceコマンドを使用してWebServicesAssemblerツールを実行し、J2EE Webサービス・クライアント用のJAX-RPCマッピング・ファイルおよびサービス・エンドポイント・インタフェースを生成します。J2EE Webサービスのクライアント側コードの生成およびアセンブルの詳細は、第14章「J2EE Webサービス・クライアントのアセンブル」を参照してください。
たとえば、次のコマンドは、J2SEクライアント用に使用可能なクライアント・プロキシ(スタブ)をアセンブルします。この例において、doclit_topdownは、生成されたWebサービスのアプリケーション名です。
コマンドライン:
java -jar wsa.jar -genProxy -wsdl http://localhost:8888/doclit_topdown/doclit_topdown?WSDL -unwrapParameters false -output build/src/client -packageName oracle.demo.topdowndoclit.stubs -mappingFileName type-mapping.xml
Antタスク:
<oracle:genProxy wsdl="http://localhost:8888/doclit_topdown/doclit_topdown?WSDL" unwrapParameters="false" output="build/src/client" packageName="oracle.demo.topdowndoclit.stubs" mappingFileName="type-mapping.xml" />
このコマンドおよびAntタスクの説明:
genProxy: J2SE Webサービス・クライアントから使用可能な静的プロキシ・スタブを作成します。「genProxy」を参照してください。
wsdl: WSDLドキュメントの絶対ファイル・パス、相対ファイル・パスまたはURLを指定します。「wsdl」を参照してください。
unwrapParameters: falseに設定すると、生成対象のサービス・エンドポイント・インタフェースが、入力パラメータおよび戻り型をラップするラッパーとともに生成されます。「unwrapParameters」を参照してください。
output: 生成されるファイルを格納するディレクトリを指定します。そのディレクトリが存在しない場合は、作成します。「output」を参照してください。
packageName: JAX-RPCマッピング・ファイルにパッケージ名が宣言されていない場合に、生成されたクラス用に使用されるパッケージ名を指定します。「packageName」を参照してください。
mappingFileName: JAX-RPCマッピング・ファイルを指すファイル位置を指定します。「mappingFileName」を参照してください。
少なくとも、WSDL名および出力ディレクトリ名を指定します。WebServiceAssemblerツールにより、スタブが生成されます。クライアント・アプリケーションはこのスタブを使用して、リモート・サービスでの操作を起動します。genProxyの必須およびオプションの引数の詳細は、「genProxy」を参照してください。
クライアントをコンパイルする前に、クラスパス上にある適切なJARをリストします。クライアントのクラスパスで使用可能なすべてのJARファイルのリストについては、表A-2「クライアント・サイド・プロキシを使用するクライアントのクラスパス・コンポーネント」を参照してください。個々のJARをリストするかわりに、クライアントのクラスパスにクライアント側のJARとしてwsclient_extended.jarを含めることができます。このJARファイルには、Webサービス・クライアントをコンパイルおよび実行するために必要なすべてのクラスが含まれます。これらのクラスは、表A-2にリストされている各JARファイルに含まれているものです。wsclient_extended.jarおよびクライアントのクラスパスの詳細は、「Webサービス・プロキシのクラスパスの設定」を参照してください。
「WSDLからのWebサービスのアセンブル」を参照してください。
詳細は、次を参照してください。
|
![]() Copyright © 2006 Oracle Corporation. All Rights Reserved. |
|