Oracle Application Server Web Services開発者ガイド 10g(10.1.3.1.0) B31868-01 |
|
この章では、Oracle Application Server Web ServicesによってサポートされるWebサービス・ファイルのパッケージ化とデプロイについて説明します。Webサービスは、いくつかの詳細事項を除き、その他のJ2EEアプリケーションと同じ方法でパッケージ化およびデプロイされます。
この章の内容は、次のとおりです。
Webサービス・ファイルをアセンブルおよびパッケージ化するには、Oracle JDeveloperまたはWebServicesAssemblerを使用します。これらのツールを使用すると、パッケージ化したアプリケーションに正しいファイルおよびデプロイメント・ディスクリプタが含まれます。Oracle JDeveloperウィザードのオプションやWebServicesAssemblerコマンドの引数を使用すると、実行時にWebサービスによって使用されるデプロイメント・ディスクリプタの値を構成できます。各ファイルは、Enterprise Web Services 1.1の仕様に記載されているルールに従って、デプロイ可能なEARファイルにパッケージ化されます。
また、Webサービス・アプリケーションは手動でアセンブルおよびパッケージ化することもできます。この章では、Webサービスのパッケージの構造と内容について説明しますが、手動アセンブリの詳細は説明しません。
デプロイを行うには、コマンドラインまたはAntタスクでadmin_client.jar
を使用するか、Oracle JDeveloperまたはApplication Server Controlツールを使用します。
表19-1は、OracleツールのどのツールでWebサービスをパッケージ化またはデプロイできるかを要約したものです。
WebServices-Assembler |
Oracle JDeveloper |
Application Server Control |
admin_client.jar |
Antタスク |
|
---|---|---|---|---|---|
パッケージ化 |
○ |
○ |
× |
× |
× |
デプロイ |
× |
○ |
○ |
○ |
○ |
最終ステップとして、デプロイしたWebサービスをUniversal Description, Discovery, and Integration(UDDI)レジストリにパブリッシュできます。
OC4Jにデプロイされるように設計されているWebサービス・ファイルが、コンポーネント・デプロイ・モジュールに追加されます。このコンポーネント・デプロイ・モジュールには、EJB用のJARまたはJavaクラス用のWARファイルがあります。コンポーネント・デプロイ・モジュールは、デプロイ可能なEARに格納されます。EARファイル内のWebサービス・ファイルのパッケージの構造は、Enterprise Web Services 1.1の仕様に定義されているルールに準拠しています。次の各項では、JavaクラスおよびEJBをベースにしたWebサービスのパッケージの構造について説明します。
JavaクラスをベースにしたWebサービスの場合、EARファイルにはWARファイルが格納されます。デプロイメント・ファイルおよびクラス・ファイルは、WARにおいてWEB-INF
ディレクトリの下に格納されます。WEB-INF
ディレクトリには、web.xml
、webservices.xml
、oracle-webservices.xml
およびJAX-RPCマッピング・ファイルがあります。また、このディレクトリには、WSDL用のwsdl
ディレクトリ、クラス・ファイル用のclasses
ディレクトリおよびJARファイル用のlib
ディレクトリもあります。
META-INF
ディレクトリには、拡張機能およびパッケージ関連データを定義するMANIFEST.MF
マニフェスト・ファイル、J2EEアプリケーションのコンポーネントを指定するapplication.xml
ファイルが含まれます。
例19-1は、JavaクラスをベースにしたWebサービスのパッケージの構造を示します。
<serviceName>.ear contains META-INF/ |--MANIFEST.MF |--application.xml <serviceName>.war contains WEB-INF/ |--web.xml |--webservices.xml |--oracle-webservices.xml |--<mapping file> |--wsdl/ |--<serviceName>.wsdl |--classes/ |--class files |--lib/ |--*jar files
EJBをベースにしたWebサービスのパッケージの構造は、Javaクラスの場合と似ていますが、EARファイルにマニフェストおよびJARファイルのためのMETA-INF
ディレクトリが含まれる点が異なります。JARファイル内には、EJB用のデプロイメント・ファイルおよびクラス・ファイルが含まれる別のMETA-INF
ディレクトリがあります。JAR内のMETA-INF
ディレクトリには、ejb-jar.xml
、webservices.xml
、oracle-webservices.xml
およびJAX-RPCマッピング・ファイルがあります。また、このディレクトリには、WSDLおよびクラス・ファイルのためのwsdl
ディレクトリもあります。例19-2は、EJBをベースにしたWebサービスのパッケージの構造を示します。
<serviceName>.ear contains META-INF/ |--MANIFEST.MF |--application.xml <serviceName>.jar contains class files META-INF/ |--ejb-jar.xml |--webservices.xml |--oracle-webservices.xml |--<mapping file> |--wsdl/ |--<serviceName>.wsdl
次のリストは、デプロイ用にパッケージ化されるファイルの説明です。
application.xml
: EARに含まれるEJB JARおよびWARが記述されています。このファイルには、EJBおよびWebモジュールなど、J2EEアプリケーションのコンポーネントを指定し、アプリケーションの追加構成も指定できます。このディスクリプタは、アプリケーションのEARファイルの/META-INF
ディレクトリに含める必要があります。application.xml
ファイルは、次のWebサイトにあるapplication_1_4.xsd
スキーマによって定義されます。http://java.sun.com/xml/ns/j2ee/application_1_4.xsd
ejb-jar.xml
: EJBコンポーネントのデプロイメント・ディスクリプタ。このファイルは、JAR内のEnterprise JavaBeansに固有の構造上の特性および依存性を定義し、BeanがEJBコンテナと対話するための方法をEJBコンテナに指定します。 webservices.xml
の内容とejb-jar.xml
の内容の間には、Webサービスとして公開されたEJBを識別するための関係が存在します。この関係については、図19-1を参照してください。
ejb-jar.xml
ファイルは、次のWebサイトにあるスキーマによって定義されます。
http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd
<
mapping file>.xml
(serviceName_java-wsdl-mapping.xml
など): Javaインタフェース、メソッドおよびパラメータをWSDLにマップするJAX-RPCマッピング・ファイル。このファイルの詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「JAX-RPCマッピング・ファイル記述子」を参照してください。
oracle-webservices.xml
: OracleAS Web Services上で動作するWebサービス・アプリケーションに固有のデプロイメント・プロパティを定義するデプロイメント・ディスクリプタ。このファイルの内容の詳細は、付録C「oracle-webservices.xmlデプロイメント・ディスクリプタ・スキーマ」を参照してください。
web.xml
: このデプロイメント・ディスクリプタは、Java Servlet 2.4の仕様によって定義されます。このデプロイメント・ディスクリプタを使用すると、J2EEに準拠する任意のアプリケーション・サーバー上にWebアプリケーションをデプロイできます。web.xml
ファイルの詳細は、次のWebサイトにあるJava Servlet 2.4の仕様を参照してください。http://jcp.org/aboutJava/communityprocess/final/jsr154/index.html
webservices.xml
の内容とweb.xml
の内容の間には、Webサービスとして公開されたサーブレットを識別するための関係が存在します。この関係については、図19-2を参照してください。
web.xml
ファイルは、次のWebサイトにあるweb-app_2_4.xsd
スキーマによって定義されます。
http://java.sun.com/xml/ns/j2ee/
webservices.xml
: コンポーネント・デプロイ・モジュール内にパッケージ化されたWebサービス・アプリケーションの標準構成ファイル。このファイルは、Webサービス・エンドポイント、関連構成ファイル、WSDL情報、JAX-RPCマッピング・データを定義します。このファイルは、WSDLファイル(<wsdl-file>
)の位置、マッピング・ファイル(<jaxrpc-mapping-file>
)、WSDLのポートに対応する<port-component>
、Javaサービス・エンドポイント・インタフェース(<service-endpoint-interface>
)、WSDLのJava表現、サーブレット名(<servlet-link>
)またはEJB名(<ejb-link>
)を示します。webservices.xml
、ejb-jar.xml
、oracle-webservices.xml
およびweb.xml
ファイルの各内容の間には、関係が存在しています。これらの関係は、Webサービスとして公開されるコンポーネントを識別し、ファイル間でメタデータをやりとりするためのものです。これらの関係の詳細は、「デプロイメント・ディスクリプタ・ファイル間の関係」を参照してください。
webservices.xml
ファイルは、次のWebサイトにあるj2ee_web_services_1_1.xsd
スキーマによって定義されます。
http://java.sun.com/xml/ns/j2ee/
http://www.w3.org/TR/wsdl
この項では、webservices.xml
と、ejb-jar.xml
、oracle-webservices.xml
およびweb.xml
ファイルの関係について説明します。
図19-1は、EJBをベースにしたWebサービス用のejb-jar.xml
の内容とwebservices.xml
の内容の関係を示します。webservices.xml
の<ejb-link>
要素の値は、ejb-jar.xml
の<ejb-name>
の値と同じです。このマッピングにより、Webサービスとして公開されるEJB、つまり、HTTP(SOAP over HTTP)を介して公開されるEJBが識別されます。webservices.xml
の<service-endpoint-interface>
要素の値は、ejb-jar.xml
の<service-endpoint>
の値と同じです。これは、EJBに関する追加の一意制約として機能します。
図19-2は、J2EE標準のwebservices.xml
デプロイメント・ディスクリプタの内容とoracle-webservices.xml
固有のデプロイメント・ディスクリプタの関係を示します。この関係により、ファイル間でのメタデータのマッピングが可能になります。webservices.xml
の<port-component-name>
要素の値は、oracle-webservices.xml
の<port-component name="...">
のname
属性と同じ値です。webservices.xml
の<webservice-description-name>
要素の値は、oracle-webservices.xml
の<webservice-description name="...">
のname
属性と同じ値です。
図19-3は、webservices.xml
の内容とweb.xml
の内容の関係を示しています。この関係により、Webサービスとして公開されるサーブレットが識別されます。webservices.xml
の<servlet-link>
要素の値は、web.xml
の<servlet-name>
と同じ値です。これにより、Webサービス実装をサーブレットとして公開する、つまり、HTTP(SOAP over HTTP)を介して公開することが可能になります。これは一般化されている方法であるため、JAX-RPCおよびEnterprise Web Services 1.1の仕様を実装するJ2EEコンテナ間でのアプリケーション・パッケージの移植を可能にします。これらの標準に準拠するアプリケーションは、Enterprise Web Services 1.1の仕様に準拠する任意のコンテナにデプロイし、任意のWebサービス・クライアントを使用して起動できます。
この項では、OracleAS Web Servicesに用意されている、Webサービス・ファイルをパッケージ化するためのツールのサポートについて説明します。パッケージ化は、WebServicesAssemblerまたはOracle JDeveloperによって行えます。
この項では、WebServicesAssemblerによるパッケージ化のサポートについて説明します。Webサービスをアセンブルするための各コマンドは、Webサービスをデプロイ可能なEARにパッケージ化するのにも使用できます。ファイルのアセンブル時には、これらのコマンドの多くで、デプロイメント・ディスクリプタの作成も行われます。デプロイメント・ディスクリプタには、コンポーネントをデプロイするために必要な宣言データや、コンポーネントをアプリケーションに構成する方法を記述したアセンブリ方法が含まれます。
WebServicesAssemblerには、Webサービスに必要なすべてのファイルをアセンブルするためのコマンドがいくつか用意されています。
WebServicesAssemblerでは、すべての関連デプロイメント・ディスクリプタの生成が処理され、アプリケーションによって必要とされる固有の構成がOracle固有のデプロイ・ファイルにマップされます。また、WebServicesAssemblerは、関連するすべてのファイルをアプリケーション・サーバーにデプロイできるようにパッケージ化します。
これらのコマンドには、生成されたファイルを様々な方法でパッケージ化または保存するための引数があります。ear
引数を使用すると、ファイルがデプロイ可能なEARファイルとして保存されます。war
引数を使用すると、ファイルはWARファイルとして保存されます。また、ファイルは、WARの内容が含まれるディレクトリに、アーカイブせずに保存されます。
多くのWebServicesAssemblerコマンドでは、Webサービスのアセンブル時にデプロイメント・ディスクリプタが作成されます。WebServicesAssemblerではデプロイは実行されませんが、WebServicesAssemblerコマンドの引数を使用すると、デプロイメント・ディスクリプタの値を設定できます。
いくつかのWebServicesAssemblerコマンドでは、出力の一部としてapplication.xml
、web.xml
、webservices.xml
およびoracle-webservices.xml
デプロイメント・ディスクリプタが生成されます。これらのファイルを生成するコマンドは、次のとおりです。
application.xml
のみを生成)
この項では、デプロイメント・ディスクリプタ・ファイルのリスト、およびその内容に影響を与える可能性のあるWebServicesAssemblerの引数を示します。
application.xml:
<context-root>
要素が追加されます。
oracle-webservices.xml:
<param name="scope">call</param>
要素が追加されます。
<context-root>
要素が追加されます。
param name
属性が<implementor>
要素に追加されます。次の例において、dataSource valueは、dataSource
引数に指定した値です。 <param name="databaseJndiName">
dataSource value</param>
*Assemble
コマンドで使用すると、管理およびカスタム・シリアライズの情報が指定したファイルからアーカイブ内のoracle-webservices.xml
ファイルにコピーされます。
<mtom-support>
サブ要素が、<port-component>
要素に追加されます。
<rest-support>
サブ要素が<port-component>
要素および<provider-port>
要素に追加されます。
<param name="scope">session</param>
要素が追加されます。
<param name="session-timeout">
integer</param>
要素が追加されます。
<endpoint-address-uri>
要素が追加されます。
<use-dime-encoding>
要素が追加されます。
serviceName-java-wsdl-mapping.xml:
このファイル名で、serviceNameは、serviceName
引数で指定されているWebサービスの名前を示します。
plsqlAssemble
、sqlAssemble
、dbJavaAssemble
またはaqAssemble
)で使用すると、<service-endpoint-interface>
要素が追加されます。
web.xml:
<servlet-class>
要素が追加されます。
<distributable>
要素が追加されます。
<url-pattern>
要素が追加されます。
webservices.xml:
<ejb-link>
要素がwebservices.xml
に追加されます(EJB 2.1の場合のみ)。
<service-endpoint-interface>
要素が追加されます。
<jaxrpc-mapping-file>
要素が追加されます。ファイルの位置と名前は、デプロイメント・ディスクリプタに格納されるときに変更されることがあります。いくつかのマッピングが元のファイルで定義されていないときは、ファイルの内容は、アーカイブに格納される前に変更されることがあります。
<handler>
タグ: handlerタグのデータがwebservices.xml
に追加されます。これらのタグはAntタスクでのみ使用できます。
Oracle JDeveloperには、Webサービス・アプリケーションをデプロイ用にパッケージ化するためのウィザードが用意されています。Oracle JDeveloperによるサポートの詳細は、Oracle JDeveloperオンライン・ヘルプの次のトピックを参照してください。
Oracle JDeveloperでサポートされているアーカイブ・タイプとその関連モジュール・タイプおよび内容がリストされています。
デプロイメント・ディスクリプタ、クライアント・アプリケーション、EJBおよびアプレットの構成とパッケージ化に関するトピックへのリンクが記載されています。
EJB JARファイルのデプロイメント・プロファイルの作成やejb-jar.xml
デプロイメント・ディスクリプタの追加の手順を示します。
クライアントJARファイルのデプロイメント・プロファイルの作成やapplication-client.xml
デプロイメント・ディスクリプタ・ファイルの作成の手順を示します。
WARファイルのデプロイメント・プロファイルの作成やweb.xml
デプロイメント・ディスクリプタの追加の手順を示します。
デプロイとは、アプリケーションが実行されるサーバーにアプリケーション・ファイルを転送するプロセスのことです。WebモジュールおよびEJBのデプロイの詳細は、『Oracle Containers for J2EEデプロイメント・ガイド』の次の章を参照してください。
Webサービスは、Oracle JDeveloperまたはApplication Server Controlを使用してデプロイできます。また、Webサービスのデプロイには、Antタスクを使用することや、コマンドラインでadmin_client.jar
を使用することもできます。
この項では、OracleAS Web Servicesに用意されているデプロイ用ツールのサポートについて説明します。デプロイの実行には、コマンドライン、Oracle JDeveloperおよびApplication Server Controlが使用できます。
OC4Jに用意されているadmin_client.jar
コマンドライン・ユーティリティを使用して、EARファイルにパッケージ化されたWebサービスをデプロイできます。アプリケーションのデプロイ・プロセスをスクリプトで記述する場合は、このユーティリティを使用できます。ただし、WARファイルにパッケージ化されたWebモジュールなど、スタンドアロンのモジュールは、admin_client.jar
ではサポートされていません。
Webサービス用のファイルが含まれるEARファイルは、他のJ2EEアプリケーションと同じ方法でデプロイできます。次は、デプロイメント・コマンドのサンプルです。
java -jar <oc4jHome>/j2ee/home/admin_client.jar deployer:oc4j:<oc4jHost>:<oc4jOrmiPort> <adminId> <adminPassword> -deploy -file dist/hello.ear -deploymentName hello -bindWebApp default-web-site
次のリストは、このコード例のパラメータの説明です。
oc4jHome
>: OC4Jインストールが含まれているディレクトリ。
oc4jHost
>:<oc4jOrmiPort
>: EARファイルまたはJ2EEアプリケーションをデプロイするOC4Jサーバーのホスト名およびポート。
<adminId>
: OC4Jのインスタンスのユーザー名。この値はOC4Jのインストール時にユーザーが割り当てます。
<adminPassword>
: OC4Jのインスタンス用のパスワード。この値はOC4Jのインストール時にユーザーが割り当てます。
default-web-site
: アプリケーションのバインド先のWebサイト。通常、これはdefault-web-site
になります。Webサイトを構成するには、<
oc4jHome
>/j2ee/home/config
のserver.xml
ファイルを参照してください。
OracleAS Web Servicesには、OC4Jインスタンスに対するJ2EEアプリケーションのデプロイおよびアンデプロイ用として一連のAntタスクが用意されています。Antタスクの詳細や、タスクをアプリケーションのビルド・プロセスに組み込むためのガイドラインについては、『Oracle Containers for J2EEデプロイメント・ガイド』の「OC4J Antタスクによるデプロイ」を参照してください。この章の内容は、次のとおりです。
bindAllWebApps
: bindAllWebApps
タスクは、以前にデプロイされているEAR内のWebモジュールを、指定されたWebサイトにバインドします。
bindWebApp
: bindWebApp
タスクは、アプリケーションへのアクセスに使用するWebサイトに、アプリケーションをバインドします。
deploy
: deploy
タスクは、アーカイブにパッケージ化されたJ2EEアプリケーションまたはモジュールをデプロイします。
deployerUri
: deployerUri
タスクは、タスクに対するターゲットのOC4Jインスタンス(1つまたは複数)を指定します。
modifySharedLibrary
: modifySharedLibrary
タスクを使用すると、Oracle Application Serverクラスタ内の1つのOC4Jインスタンスまたはインスタンスのグループにインストールされている既存の共有ライブラリを変更できます。
publishSharedLibrary
: publishSharedLibrary
タスクは、Oracle Application Serverクラスタ内の1つのOC4Jインスタンスまたはインスタンスのグループに共有ライブラリをインストールします。
removeSharedLibrary
: removeSharedLibrary
タスクは、Oracle Application Serverクラスタ内の1つのOC4Jインスタンスまたはインスタンスのグループから共有ライブラリを削除します。
start
、stop
: start
およびstop
タスクは、特定のOC4Jインスタンスでのデプロイ操作の一部として、アプリケーションおよびその子アプリケーションを起動、停止または再起動します。
undeploy
: undeploy
タスクは、指定されたアプリケーションまたはモジュールをOC4Jインスタンスから削除します。また、このタスクは、Webサイトからアプリケーションを自動的にアンバインドします。
updateEjbModule
: updateEjbModule
タスクを使用すると、Oracle Application Serverクラスタ内の1つのOC4Jインスタンスまたはインスタンスのグループで稼働しているアプリケーション内のEJBモジュールの、増分デプロイまたは部分的なデプロイを行うことができます。
次のリストは、Webサービスのデプロイに役に立つOracle JDeveloperのオンライン・ヘルプ内のトピックです。これらのトピックの詳細は、Oracle JDeveloperのオンライン・ヘルプを参照してください。
実行可能JARファイル、またはファイル・システム上のJARファイルにアプリケーションをデプロイする手順について説明します。
ローカル・サーバー上で動作するOC4Jの埋込みインスタンスまたはOracle Application ServerにWebサービスをデプロイする手順について説明します。
リモート・サーバー上で動作するOC4Jの外部インスタンスまたはOracle Application ServerにWebサービスをデプロイする手順について説明します。
セキュリティを使用するJ2EE 1.4 Webサービスをデプロイする手順について説明します。この手順では、デプロイ用のWebサービスにキーストアをバンドルする方法について説明します。
次のリストは、Webサービスのデプロイに役に立つApplication Server Controlのオンライン・ヘルプ内のトピックです。これらのトピックの詳細は、Application Server Controlのオンライン・ヘルプを参照してください。
Application Server Controlコンソールに用意されている「デプロイ・プラン」ページには、デプロイメント時にOracleAS Web Servicesデプロイメント・ディスクリプタ(oracle-webservices.xml
)に値を設定する機能があります。
Application Sever Controlを使用して構成できるデプロイメント属性について説明します。
アプリケーションをデプロイする手順について説明します。
アプリケーションをデプロイまたはアンデプロイする手順について説明します。
「Webサービスのパッケージ化およびデプロイ」を参照してください。
詳細は、次を参照してください。
wsmgmt.xml
管理ポリシー・ファイルの内容については、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「Webサービス管理スキーマの概要」を参照してください。
|
![]() Copyright © 2006 Oracle Corporation. All Rights Reserved. |
|