Oracle® Fusion Middleware Oracle WebLogic Serverデプロイメントのプログラミング 11g リリース1 (10.3.6) B60989-04 |
|
前 |
次 |
WebLogicデプロイメントAPIはJava EEデプロイメントAPI標準(JSR-88、http://java.sun.com/j2ee/tools/deployment/index.jsp
を参照)のインタフェースを実装し拡張したもので、WebLogic Serverアプリケーションに特定のデプロイメント機能を提供します。次の項では、WebLogicデプロイメントAPIの構造および機能について説明します。
注意: WebLogic Server 9.0では、旧リリースで使われていたweblogic.management.deploy APIの使用は非推奨になっています。 |
次の項では、WebLogic ServerデプロイメントAPIの概要を説明します。
Java EEデプロイメントAPI標準(JSR-88、http://java.sun.com/j2ee/tools/deployment/index.jsp
を参照)では、構成セッションとデプロイメントは違うものとされています。この2つは次のように区別されています。
デプロイメント・プランの記述子を生成するアプリケーションの構成
配布、起動、停止、再デプロイ、アンデプロイなどのデプロイメント・タスク
お使いの環境でデプロイメント・プロセスを効率的に管理するには、WebLogicデプロイメントAPIを使用して、以下を実行する必要があります。
このドキュメントでは、構成という用語は、WebLogic Serverインスタンスへのデプロイメントのためにアプリケーションまたはデプロイ可能なリソースを準備するプロセスのことを指します。アプリケーションの構成は、次のフェーズで構成されています。
アプリケーション評価: アプリケーション・ファイルを検査および評価して、アプリケーションの構造と組み込まれている記述子の内容を判断します。「アプリケーション評価」を参照してください。
フロントエンド構成: アプリケーションに組み込まれている情報に基づいて構成情報を作成します。この情報には、WebLogic Server記述子、デフォルト、ユーザー定義によるデプロイメント・プランなどがあります。「フロントエンド構成の実行」を参照してください。
デプロイメント構成: ユーザー入力および選択されたWebLogic Serverターゲットに基づいて、個別のWebLogic Server構成の値を変更します。「デプロイメント構成のカスタマイズ」を参照してください。
デプロイメントの準備: 最終的なデプロイメント・プランを生成し、クライアント側でアプリケーションを事前に検証します。「デプロイメントの準備」を参照してください。
アプリケーションのデプロイメントは、サーバー側処理とアプリケーションの起動のために管理サーバーにアプリケーションとプランを配布するプロセスです。第4章 「デプロイメント操作の実行」を参照してください。
WebLogic Serverでは、パッケージ化されたデプロイメント・ツールwebLogic.Deployer
が提供されています。このツールを使用すると、WebLogic Serverでデプロイメント・サービスを利用できます。WebLogicデプロイメントAPIを使用して実装できるデプロイメント操作は、weblogic.Deployer
によって部分的に、または完全に実装されています。
注意: weblogic.Deployer は、WebLogic Server環境にお薦めするデプロイメント・ツールです。weblogic.Deployer およびWebLogic Server管理コンソールの使用方法は、「Oracle WebLogic Serverへのアプリケーションのデプロイ」を参照してください。 |
WebLogicデプロイメントAPIは以下の場合に必要になります。
独自の実装をモデル化し、WebLogicサービス・プロバイダ・インタフェース(SPI)とインタフェースさせる必要がある場合。この場合、weblogic.deploy.api.spi
を使用するときjavax.enterprise.deploy.spi.DeploymentManager
(http://download.oracle.com/javaee/5/api/javax/enterprise/deploy/spi/DeploymentManager.html
を参照)を拡張するWebLogicDeploymentManager
を取得するために、WebLogicデプロイメントAPIデプロイメント・ファクトリが使用されます。http://java.sun.com/j2ee/tools/deployment/index.jsp
で、アプリケーション評価およびJava EEデプロイメントAPI標準を参照してください。
WebLogic Server管理コンソールまたはweblogic.Deployer
を使用するかわりに、独自のデプロイメント・インタフェースを作成する必要がある場合。この場合、WebLogicデプロイメントAPIのクラスおよびインタフェースを使用して、WebLogicデプロイメントAPIのデプロイメントのフェーズの一部またはすべてを実装します。
WebLogicデプロイメントAPIのクラスおよびインタフェースは、javax.enterprise.deploy
サブパッケージに記述されているJava EEデプロイメントAPI標準(JSR-88)インタフェースを拡張および実装します。(http://download.oracle.com/javaee/5/api/overview-summary.html
を参照してください)。WebLogicデプロイメントAPIには、以下のパッケージが提供されています。
WebLogicでは、http://java.sun.com/j2ee/tools/deployment/index.jsp
のJava EEデプロイメントAPI標準(JSR-88)に記述されている「製品プロバイダ」のロールをサポートし、任意のJava EEネットワーク・クライアント用の拡張可能なコンポーネントに加えて、WebLogic Server環境固有のユーティリティも用意されています。そうした拡張機能には、以下のようなものがあります。
WebLogicの各種機能のサポート。admin
モードでの起動や、バージョニング機能付きの再デプロイなどがあります。
以下のようなきめ細かなレベルでの制御。
モジュール・レベルのターゲット指定
部分的な再デプロイメント(アプリケーションの一部の再デプロイメントまたは削除)
動的な構成変更
JMS、JDBC、インターセプション、アプリケーション固有の構成(カスタムまたは構成)モジュールなど、WebLogicモジュール拡張のサポート。
付加的な操作。distribute
とstart
を組み合わせたDeploy
という動詞などがあります。
注意: WebLogicデプロイメントAPIでは、アプリケーションの更新に失敗した際の自動フォールバック手続きはサポートされていません。この動作のポリシーと手続きは、各デプロイメント環境の開発者または管理者が定義し、構成する必要があります。 |
OracleはJava EE製品プロバイダとして、javax
Service Provider Interface (SPI)パッケージを拡張して、WebLogic Server固有の構成とデプロイ制御を提供しています。このパッケージのコア・インタフェースはDeploymentManager
であり、ここから他のすべてのデプロイメント・アクティビティを開始、モニターおよび制御します。
WebLogicDeploymentManager
インタフェースは、javax.enterprise.deploy.spi.DeploymentManager
インタフェースに対してWebLogic Server拡張を提供します。WebLogicDeploymentManager
のオブジェクトではWeblogic Serverデプロイメント・フレームワークがステートレスでインタフェースされます。これにより、基本的なデプロイメント機能に加えて、本番再デプロイメント、エンタープライズ・アプリケーション内のモジュールの部分的なデプロイメントなどの幅広いWebLogic Serverデプロイメント機能が実現します。WebLogicDeploymentManager
オブジェクトは、通常ToolsパッケージのSessionHelper
ヘルパー・クラスからSessionHelper.getDeploymentManager
メソッドを使用して取得します。「アプリケーション評価」を参照してください。
次の項では、WebLogic Server SPIの機能の概要について説明します。
weblogic.deploy.api.spi
パッケージには、ターゲットにアプリケーションを構成およびデプロイするために必要なインタフェースが用意されています(有効なターゲット・タイプは、「WebLogicターゲット・タイプの問合せサポート」を参照してください)。このパッケージを使用すると、エンタープライズ・アプリケーションまたはスタンドアロン・モジュールのWebLogic Server固有のデプロイメント構成を実装できるデプロイメント・ツールを作成できます。
weblogic.deploy.api.spi
には、WebLogicDeploymentManager
インタフェースが含まれています。このデプロイメント・マネージャを使用して、WebLogic Serverでのすべてのデプロイメント関係の操作(アプリケーションの配布、起動、停止など)を実行します。WebLogicDeploymentManager
では、Java EE DeploymentManager
インタフェースの重要な拡張で、エンタプライズ・アプリケーション・モジュールのモジュール・レベルのターゲット指定、本番再デプロイメント、アプリケーションのバージョニング、アプリケーションのステージング・モード、デプロイされたアプリケーションへの管理アクセスの制約などの機能が提供されます。
weblogic.deploy.api.spi
パッケージのWebLogicDeploymentConfiguration
クラスおよびWebLogicDConfigBean
クラスで、アプリケーションのデプロイメントおよび構成の記述子(WebLogic Serverデプロイメント記述子)が表されます。
WebLogicDeploymentConfiguration
オブジェクトはデプロイメント・プランのラッパー。
WebLogicDConfigBean
には、Weblogicデプロイメント記述子のプロパティがカプセル化されます。
このパッケージに含まれるインタフェースはWebLogicDeploymentFactory
のみです。これは、javax.enterprise.deploy.spi.factories.DeploymentFactory
のWebLogic拡張です。このファクトリ・インタフェースを使用すると、様々な特性を持つDeploymentManager
オブジェクトを選択して割り当てられます。WebLogicDeploymentManager
の特性は、このWebLogicDeploymentFactory
のpublicフィールドで定義されます。
モジュールのターゲット指定とは、アプリケーション内の特定のモジュールを別のターゲットにデプロイすることです(JSR-88の仕様にある、すべてのモジュールを同じターゲットのセットにデプロイする処理とは異なります)。モジュールのターゲット指定は、WebLogicDeploymentManager.createTargetModuleID
メソッドによってサポートされています。
WebLogicTargetModuleID
クラスには、javax.enterprise.deploy.spi.TargetModuleID
インタフェースのWebLogic Server拡張が含まれています。このクラスは、構成されたTargetInfoMBeans
(AppDeploymentMBean
およびSubDeploymentMBean
)と密接に関連しています。WebLogicTargetModuleID
クラスには、アプリケーション・モジュールについて、またアプリケーション・モジュールとそのターゲットとの関係について、TargetInfoMBeans
にあるよりも詳細に記述されます。「モジュールのタイプ」を参照してください。
WebLogic Serverでは、WebLogicTarget
クラスにWebLogic Serverで使用できるターゲット・タイプを管理するための直接インタフェースが提供されています。表2-1で、ターゲット・アクセサ・メソッドについて説明します。
アプリケーションのステージング・モードは、デプロイメントの動作に影響します。アプリケーションのステージング動作は、DeploymentOptions.setStageMode (stage mode)
を使用して設定されます。stage mode
の値は以下のいずれかになります。
STAGE
: ターゲット・サーバーにファイルが強制的にコピーされます。
NO_STAGE
: ターゲット・サーバーにファイルがコピーされません。
EXTERNAL_STAGE
: ファイルを手動でステージングします。
DConfigBean
のプロパティ・セッターでは、無効な値の設定が拒否されます。これには、プロパティの型の検証(整数型プロパティに対する非数値の指定の検証など)が含まれます。一部のプロパティでは、セマンティックな検証(関連する最小値よりも最大値が小さく指定されていないことの確認など)が行われます。
このパッケージの一連のクラスはjavax.enterprise.deploy.model
インタフェースのWebLogic Server拡張および実装です(http://download.oracle.com/javaee/5/api/javax/enterprise/deploy/model/package-summary.html
を参照してください)。modelインタフェースでは、Java EEアプリケーションの標準的な要素(デプロイメント記述子など)を表現します。
このパッケージには、デプロイ可能なオブジェクトのJava EE構成を表すために使用されるインタフェース群が含まれています。デプロイ可能なオブジェクトとは、エンタープライズ・アプリケーションまたはスタンドアロン・モジュールのデプロイメント・コンテナです。
javax.enterprise.deploy.model
インタフェースのWebLogic Server実装を使用すると、WebLogic Serverアプリケーション・インストール・ディレクトリに格納されているアプリケーションで作業できます。WebLogic Serverアプリケーション・インストール・ディレクトリとは、構成プロセスで生成される、アプリケーションのデプロイメント・ファイル、デプロイメントおよび外部WebLogicデプロイメント記述子の管理に使用する正式なディレクトリ構造です。アプリケーション・インストール・ディレクトリの配置の詳細は、「アプリケーションおよびモジュールのデプロイメント準備」を参照してください。任意のJava EEアプリケーションと、(拡張として)アプリケーション・インストール・ディレクトリにあるサポート・アプリケーションがサポートされています。
注意: weblogic.deploy.api.model では、Java EEデプロイメント記述子要素に対する構成中の動的な変更がサポートされません。したがって、XPathリスナーの登録および削除はサポートされません。DDBean.addXPathListener およびremoveXPathListener はサポートされていません。 |
weblogic.deploy.api.model
パッケージのWebLogicDeployableObject
クラスとWebLogicDDBean
インタフェースで、アプリケーションの標準的なデプロイメント記述子が表現されます。
Java EEデプロイメントAPIでは、Java EEデプロイメント記述子にはDeployableObject
を介してアクセスするように規定されています(http://download.oracle.com/javaee/5/api/javax/enterprise/deploy/model/DeployableObject.html
を参照してください)。DeployableObject
はアプリケーション内のモジュールを表します。記述子の要素はDDBeans
で表されます。デプロイメント記述子の各要素に1つのDDBeanが対応します。記述子のルート要素はDDBeanRoot
オブジェクトで表されます。これらのインタフェースはすべて、対応するこのパッケージのインタフェースおよびクラス内に実装されます。
DeployableObject
のWebLogic Server実装であるWebLogicDeployableObject
クラスには、createDeployableObject
メソッドがあり、これらのメソッドでアプリケーションのデプロイメント記述子のWebLogicDeployableObject
およびWebLogicDDBean
を作成します。基本的な構成タスクを実行するには、WebLogicDDBean
をWebLogicDConfigBean
に関連付けます。WebLogicDConfigBeanはWebLogic Serverへのアプリケーションのデプロイに必要なサーバー構成のプロパティを表しています。「アプリケーション評価」を参照してください。
サーバー環境(この場合はWebLogic Serverインスタンス)の具体的な構成情報を格納するDConfigBean
と異なり、DDBean
オブジェクトにはアプリケーションの一般的なデプロイメント記述子要素が格納されます。たとえば、Webアプリケーションをデプロイする場合、WebLogicDDBeans
のデプロイメント記述子は、.war
アーカイブのWEB-INF/web.xml
ファイルから取得されます。WebLogicDConfigBeans
の情報は、WebLogicDDBeans
に基づいて.war
アーカイブのWEB-INF/weblogic.xml
から取得されます。これらのBeanは構成情報を保持するという基本的な目的については同じですが、論理的には異なるものです。DDBean
ではアプリケーションについて記述され、DConfigBeans
では特定の環境に対してアプリケーションが構成されます。
これらのオブジェクトは両方とも構成セッションを開始するときに生成されます。WebLogicDeployableObject
、WebLogicDDBeans
、およびWebLogicDConfigBeans
はすべて構成セッションの中でインスタンス化され、操作されます。「構成プロセスの概要」を参照してください。
次の項では、WebLogic Server固有のデプロイメント・コマンド、モジュールのタイプ、および(クラスとしての)ターゲット・タイプを表現する一連のクラスについて説明します。
weblogic.deploy.api.shared
パッケージには、WebLogic Server固有のデプロイメント・コマンド、モジュールのタイプ、および(クラスとしての)ターゲット・タイプを表す一連のクラスが用意されています。これらのクラスのオブジェクトはweblogic.deploy.api.modelパッケージおよびweblogic.deploy.api.spiパッケージで共有できます。
標準のjavax.enterprise.deploy.shared
クラスにあるModuleType
およびCommandType
の定義は、以下をサポートするように拡張されています。
モジュールのタイプ。「モジュールのタイプのサポート」を参照してください。
コマンド。「デプロイ用、更新用のコマンド・タイプ」を参照してください。
Java EEデプロイメントAPI標準(JSR-88、http://java.sun.com/j2ee/tools/deployment/index.jsp
を参照)では必須ではないWebLogicTargetType
クラスでは、WebLogic Serverでサポートされる多様なデプロイメント・ターゲット・タイプが列挙されます。このクラスでjavax
のデプロイメント・クラスが拡張されません。「すべてのタイプのWebLogic Serverターゲットのサポート」を参照してください。
javax.enterprise.spi.shared
パッケージに定義されている必須のコマンド・タイプに、deploy
とupdate
のコマンド・タイプが追加され、WebLogicDeploymentManager
から利用できます。
サポートされているモジュールのタイプには、JMS、JDBC、インターセプション、WSEE、構成、およびWLDFがあります。これらはweblogic.deploy.api.shared.WebLogicModuleType
クラスにフィールドとして定義されています。
Java EEデプロイメントAPI仕様では実装されていないターゲットはWebLogicデプロイメントAPIで実装されます。有効なターゲットの値は以下のとおりです。
クラスタ
JMSサーバー
ストア・アンド・フォワード(SAF)エージェント
サーバー
仮想ホスト
これらは、weblogic.deploy.api.shared.WebLogicTargetType
クラスの列挙フィールドの値です。
次の項では、最小限の制御および明示的なオブジェクト操作で一般的なデプロイメント・ツールのタスクを実行できるAPIツールについて説明します。
weblogic.deploy.api.tools
には、コンビニエンス・クラスが用意されています。
WebLogicDeploymentManager
の取得
アプリケーションの構成の入力
デプロイメント・プランの新規作成または更新
ツール・パッケージのクラス群は、Java EEデプロイメントAPI標準(JSR-88、http://java.sun.com/j2ee/tools/deployment/index.jsp
を参照)インタフェースの拡張ではありません。これらのクラス群を使用すると、WebLogicデプロイメントAPIで提供されるデプロイメント操作に簡単にアクセスできます。
構成セッションはWebLogicDeploymentManager
から直接制御することもできますが、制御を簡単に実行できるメソッドがSessionHelper
に用意されています。使用しているツールで直接WebLogic Server Java EEデプロイメントAPI実装に対してコーディングする場合、必ずSessionHelper
を使用する必要があります。
SessionHelper
を使用すると、1回のメソッド呼出しでWebLogicDeploymentManager
を取得できます。この作業を効率的に行うには、アプリケーションを検索できる必要があります。SessionHelper
では「インストール・ルート」抽象を使用してアプリケーションとデプロイメント・プランのアーティファクトを表示します。これは理想的には実際のアプリケーションの構成です。インストール・ルートは次のように表示されます。
install-root (eg myapp) -- app ----- archive (eg myapp.ear) -- plan ----- deployment plan (eg plan.xml) ----- external descriptors (eg META-INF/weblogic-application.xml...)
アプリケーションは上記の構成でなくても構いません。ただし、アプリケーションと構成アーティファクトは共通のルートに保持するのが推奨されるアプローチです。そうすることでSessionHelper
で解釈できる形式になります。
SessionHelper.getModuleInfo()
では、アプリケーション構造の理解に役立つオブジェクトが返されます。この場合、DDBeans
およびDeployableObjects
を直接扱う必要がありません。次のような情報が提供されます:
アプリケーション内のモジュールおよびサブモジュールの名前およびタイプ
アプリケーションで提供されるWebサービスの名前
Webアプリケーションのコンテキスト・ルート
EJBのエンタープライズBean名
デプロイメント記述子は、内部的には記述子Beanのツリー(個々の記述子要素を表す型付きのJava Beanオブジェクトのツリー)として表現されます。こうしたBeanツリーを使用すると、より一般的なDDBean
およびDConfigBean
オブジェクトを扱うよりも簡単に処理できます。各モジュールの記述子Beanツリーには、関連する各モジュールのWebLogicDDBeanRoot
オブジェクトおよびWebLogicDConfigBeanRoot
オブジェクトから、それらのオブジェクトにあるgetDescriptorBean
メソッドを使用して直接アクセスできます。WebLogicDConfigBean
から取得したBeanツリーを変更すると、関連付けられたDConfigBean
(したがってアプリケーションのデプロイメント・プラン)を変更するのと同じ結果が得られます。
weblogic.PlanGenerator
を使用すると、アプリケーション内にあるJava EEおよびWebLogic Server記述子に基づいてデプロイメント・プランのテンプレートを作成できます。結果として作成されるプランによりアプリケーションの構造が記述され、すべてのデプロイメント記述子が特定されて、アプリケーションの構成可能なプロパティのサブセットがエクスポートされます。プロパティがエクスポートされると、そのプロパティはWebLogic Serverコンソールのようなツールに対して公開されます。そうしたツールではプランを使用して、管理者がプロパティに適切な値を指定できるように支援します。weblogic.PlanGenerator
ツールからは、デフォルトではアプリケーションの依存関係、つまり正常なデプロイメントに必要なプロパティのみがエクスポートされます。この動作は以下のオプションの1つを用いてオーバーライドできます。
Dependencies
: アプリケーションで参照するリソースをエクスポートします(デフォルト)
Declarations
: アプリケーションで定義されているリソースをエクスポートします
Configurables
: 非リソース指向の構成可能なプロパティをエクスポートします
Dynamics
: 実行中のアプリケーションで変更される可能性があるプロパティをエクスポートします
All
: すべての変更可能なプロパティをエクスポートします
None
: プロパティをエクスポートしません