ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server デプロイメント プログラマーズ ガイド
11g リリース 1 (10.3.1)
B55512-01
 

目次
目次

戻る
戻る
 
次へ
次へ
 

2 WebLogic デプロイメント API について

WebLogic デプロイメント API は J2EE Deployment API 標準 (JSR-88、http://java.sun.com/j2ee/tools/deployment/index.jsp を参照) のインタフェースを実装し拡張したもので、WebLogic Server アプリケーションに特定のデプロイメント機能を提供します。以下の節では、WebLogic デプロイメント API の構造と機能について説明します。

WebLogic デプロイメント API


注意 :

WebLogic Server 9.0 では、旧リリースで使われていた weblogic.management.deploy API の使用は非推奨になっています。

以下の節では、WebLogic Server デプロイメント API の概要を説明します。

WebLogic デプロイメント API のデプロイメントのフェーズ

J2EE Deployment API 標準 (JSR-88、http://java.sun.com/j2ee/tools/deployment/index.jsp を参照) では、コンフィグレーション セッションとデプロイメントは違うものとされています。この 2 つは次のように区別されています。

  • アプリケーションのコンフィグレーション : デプロイメント プランの元になる記述子を生成する。

  • デプロイメント タスク : 配布、起動、停止、再デプロイ、アンデプロイ。

お使いの環境でデプロイメント プロセスを効率的に管理するには、WebLogic デプロイメント API を使用して、以下を実行する必要があります。

デプロイメントのためにアプリケーションをコンフィグレーションする

このドキュメントでは、コンフィグレーションという用語は、WebLogic Server インスタンスへのデプロイメントのためにアプリケーションまたはデプロイ可能なリソースを準備するプロセスのことを指します。アプリケーションのコンフィグレーションは、以下のフェーズで構成されています。

  • アプリケーション評価 - アプリケーション ファイルを検査および評価して、アプリケーションの構造と組み込まれている標準の記述子の内容を判断します。「アプリケーション評価」を参照してください。

  • フロントエンド コンフィグレーション - アプリケーションに組み込まれている情報に基づいてコンフィグレーション情報を作成します。この情報には、WebLogic Server 記述子、デフォルト、ユーザ定義によるデプロイメント プランの形式があります。「フロントエンド コンフィグレーションの実行」を参照してください。

  • デプロイメント コンフィグレーション - ユーザ入力および選択する WebLogic Server 対象に基づいて、個々の WebLogic Server コンフィグレーションの値を変更します。「デプロイメント コンフィグレーションのカスタマイズ」を参照してください。

  • デプロイメント準備 - 最終的なデプロイメント プランを生成し、クライアントサイドでアプリケーションをある程度検証します。「デプロイメント準備」を参照してください。

アプリケーションをデプロイする

アプリケーションのデプロイメントは、サーバサイド処理とアプリケーションの起動のために管理サーバにアプリケーションとプランを配布するプロセスです。「デプロイメント工程の実行」を参照してください。

WebLogic デプロイメント API の weblogic.Deployer 実装

WebLogic Server では、パッケージ化されたデプロイメント ツール webLogic.Deployer が提供されています。このツールを使用すると、WebLogic Serverでデプロイメント サービスを利用できます。WebLogic デプロイメント API を使用して実装できるデプロイメント処理は、webLogic.Deployer によって部分的に、または完全に実装されています。

WebLogic デプロイメント API を使用する場合


注意 :

webLogic.Deployer は、WebLogic Server 環境で推奨されるデプロイメント ツールです。webLogic.Deployer および WebLogic Server Administration Console の使用方法については、『Oracle Fusion Middleware Oracle WebLogic Server アプリケーションのデプロイメント』を参照してください。

WebLogic デプロイメント API は以下の場合に必要になります。

J2EE Deployment API への準拠

WebLogic デプロイメント API のクラスとインタフェースには、J2EE Deployment API 標準 (JSR-88) インタフェースが拡張されて実装されています。詳細については、javax.enterprise.deploy のサブパッケージを参照してください (http://java.sun.com/javaee/5/docs/api/overview-summary.html を参照)。WebLogic デプロイメント API には、以下のパッケージが提供されています。

WebLogic Server のデプロイメントの付加価値機能

WebLogic では、J2EE Deployment API 標準 (JSR-88) に記述されている「Product Provider (製品プロバイダ)」の役割をサポートしています (http://java.sun.com/j2ee/tools/deployment/index.jsp)。そのため、任意の J2EE ネットワーク クライアント用の拡張可能なコンポーネントに加えて、WebLogic Server 環境に固有のユーティリティも用意されています。そうした拡張機能には、以下のようなものがあります。

Service Provider Interface パッケージ

Oracle は J2EE 製品プロバイダとして、Sun Microsystems 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.deploy.api.spi パッケージには、対象にアプリケーションをコンフィグレーションおよびデプロイするのに必要なインタフェースが用意されています (有効な対象の種類については、「WebLogic 対象の種類のクエリ サポート」を参照)。このパッケージを使用すると、エンタープライズ アプリケーションまたはスタンドアロン モジュールの WebLogic Server 固有のデプロイメント コンフィグレーションを実装できるデプロイメント ツールを作成することができます。

weblogic.deploy.api.spi には、WebLogicDeploymentManager インタフェースが含まれています。このデプロイメント マネージャを使用して、WebLogic Server でのすべてのデプロイメント関連工程 (アプリケーションの配布、起動、停止) を行います。WebLogicDeploymentManager は、J2EE DeploymentManager インタフェースの重要な拡張で、エンタープライズ アプリケーション モジュールのモジュールレベルの対象指定、プロダクションの再デプロイメント、アプリケーションのバージョニング、アプリケーションのステージング モード、デプロイされたアプリケーションへの管理アクセスの制約などの機能がサポートされます。

weblogic.deploy.api.spi パッケージの WebLogicDeploymentConfiguration クラスと WebLogicDConfigBean クラスで、アプリケーションのデプロイメントとコンフィグレーションの記述子 (WebLogic Server デプロイメント記述子) が表されます。

  • WebLogicDeploymentConfiguration オブジェクトはデプロイメント プランのラッパー。

  • WebLogicDConfigBean には、Weblogic デプロイメント記述子のプロパティがカプセル化される。

weblogic.deploy.api.spi.factories

このパッケージに含まれるインタフェースは 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 対象の種類のクエリ サポート

WebLogic Server では、WebLogicTarget クラスに WebLogic Server で使用できる対象の種類を管理するための直接インタフェースが提供されています。表 2-1 で、対象アクセサ メソッドについて説明します。

表 2-1 対象アクセサ メソッド

メソッド 説明

boolean isCluster()

この対象がクラスタかどうかを示す。

boolean isJMSServer()

この対象が JMS サーバかどうかを示す。

boolean isSAFAgent()

この対象が SAF エージェントかどうかを示す。

boolean isServer()

この対象がサーバかどうかを示す。

boolean isVirtualHost()

この対象が仮想ホストかどうかを示す。


サーバのステージング モード

アプリケーションのステージング モードは、デプロイメントの動作に影響します。アプリケーションのステージング動作は、DeploymentOptions.setStageMode (stage mode) を使用して設定されます。stage mode の値は以下のいずれかになります。

  • STAGE - 対象サーバにファイルが強制的にコピーされる。

  • NO_STAGE - 対象サーバにファイルがコピーされない。

  • EXTERNAL_STAGE - ファイルは手動でステージングされる。

DConfigBean 検証

DConfigBean のプロパティ セッターでは、無効な値の設定が拒否されます。これには、プロパティの型の検証 (整数型プロパティに対する非数値の指定の検証など) が含まれます。一部のプロパティでは、セマンティックな検証 (関連する最小値よりも最大値が小さく指定されていないことの確認など) が行われます。

Model パッケージ

このパッケージの一連のクラスは javax.enterprise.deploy.model インタフェースの WebLogic Server 拡張および実装です (http://java.sun.com/javaee/5/docs/api/javax/enterprise/deploy/model/package-summary.html を参照)。model インタフェースでは、J2EE アプリケーションの標準的な要素 (デプロイメント記述子など) を表現します。

weblogic.deploy.api.model

このパッケージには、デプロイ可能なオブジェクトの J2EE コンフィグレーションの表現に使用されるインタフェース群が含まれています。デプロイ可能なオブジェクトとは、エンタープライズ アプリケーションまたはスタンドアロン モジュールのデプロイメント コンテナです。

javax.enterprise.deploy.model インタフェースの WebLogic Server 実装を使用すると、WebLogic Server アプリケーションのインストール ディレクトリに格納されているアプリケーションで作業できます。WebLogic Server アプリケーションのインストール ディレクトリとは、コンフィグレーションの過程で生成される、アプリケーションのデプロイメント ファイル、デプロイメント、および外部 WebLogic デプロイメント記述子の管理に用いる正式なディレクトリ構造です。アプリケーション インストール ディレクトリの配置の詳細については、「アプリケーションおよびモジュールのデプロイメント準備」を参照してください。任意の J2EE アプリケーションと、(拡張として) アプリケーション インストール ディレクトリにあるアプリケーションがサポートされています。


注意 :

weblogic.deploy.api.model では、J2EE デプロイメント記述子要素に対するコンフィグレーション中の動的な変更がサポートされません。したがって、XPath リスナの登録と削除はサポートされません。DDBean.addXPathListenerremoveXPathListener はサポートされていません。

weblogic.deploy.api.model パッケージの WebLogicDeployableObject クラスと WebLogicDDBean インタフェースで、アプリケーションの標準的なデプロイメント記述子が表現されます。

デプロイメント記述子へのアクセス

J2EE Deployment API では、J2EE デプロイメント記述子には DeployableObject を介してアクセスするように規定されています (http://java.sun.com/javaee/5/docs/api/javax/enterprise/deploy/model/DeployableObject.html を参照)。DeployableObject はアプリケーション内のモジュールを表します。記述子の要素は DDBean で表されます。デプロイメント記述子の各要素に 1 つの DDBean が対応します。記述子のルート要素は DDBeanRoot オブジェクトで表されます。これらのインタフェースはすべて、対応するこのパッケージのインタフェースおよびクラス内に実装されます。

WebLogicDeployableObject クラス (DeployableObject の WebLogic Server 実装) には createDeployableObject メソッドがあり、このメソッドでアプリケーションのデプロイメント記述子の WebLogicDeployableObject および WebLogicDDBean を作成します。基本的なコンフィグレーション タスクを実行するには、WebLogicDDBeanWebLogicDConfigBean に関連付けます。WebLogicDConfigBean は WebLogic Server へのアプリケーションのデプロイに必要なサーバ コンフィグレーションのプロパティを表しています。「アプリケーション評価」を参照してください。

サーバ環境 (この場合は WebLogic Server インスタンス) の具体的なコンフィグレーション情報を格納する DConfigbean と異なり、DDBean オブジェクトにはアプリケーションの一般的なデプロイメント記述子要素が格納されます。たとえば、Web アプリケーションをデプロイする場合、WebLogicDDBeans のデプロイメント記述子は、.war アーカイブの WEB-INF/web.xml ファイルから取得されます。WebLogicDConfigBean の情報は、WebLogicDDBean に基づいて .war アーカイブの WEB-INF/weblogic.xml から取得されます。これらの Bean はコンフィグレーション情報を保持するという基本的な目的については同じですが、論理的には異なるものです。DDBean ではアプリケーションについて記述され、DConfigBean では特定の環境に対してアプリケーションがコンフィグレーションされます。

これらのオブジェクトは両方ともコンフィグレーション セッションを開始するときに生成されます。WebLogicDeployableObjectWebLogicDDBean、および WebLogicDConfigBean はすべてコンフィグレーション セッションの中でインスタンス化され、操作されます。「コンフィグレーション プロセスの概要」を参照してください。

Shared パッケージ

以下の節では、WebLogic Server 固有のデプロイメント コマンド、モジュールのタイプ、および (クラスとしての) 対象の種類を表現する一連のクラスについて説明します。

weblogic.deploy.api.shared

weblogic.deploy.api.shared パッケージには、WebLogic Server 固有のデプロイメント コマンド、モジュールのタイプ、および (クラスとしての) 対象の種類を表す一連のクラスが用意されています。これらのクラスのオブジェクトは weblogic.deploy.api.model パッケージおよび weblogic.deploy.api.spi パッケージで共有できます。

標準の javax.enterprise.deploy.shared クラスにある ModuleType および CommandType の定義は、以下をサポートするように拡張されています。

J2EE Deployment API 標準では必須でない WebLogicTargetType クラス (JSR-88、http://java.sun.com/j2ee/tools/deployment/index.jsp を参照) では、WebLogic Server でサポートされる多様なデプロイメント対象の種類が列挙されます。このクラスは javax のデプロイメント クラスを拡張するものではありません。詳細については、「全種類の WebLogic Server 対象のサポート」を参照してください。

デプロイ用、更新用のコマンド タイプ

javax.enterprise.spi.shared パッケージに定義されている必須のコマンド タイプに、deployupdate のコマンド タイプが追加され、WebLogicDeploymentManager から利用できます。

モジュールのタイプのサポート

サポートされているモジュールのタイプには、JMS、JDBC、インターセプション、WSEE、コンフィグ、および WLDF があります。これらは weblogic.deploy.api.shared.WebLogicModuleType クラスにフィールドとして定義されています。

全種類の WebLogic Server 対象のサポート

対象は、J2EE Deployment API 仕様では実装されず、WebLogic デプロイメント API で実装されます。有効な対象の値は以下のとおりです。

  • クラスタ

  • JMS サーバ

  • ストア アンド フォワード (SAF) エージェント

  • サーバ

  • 仮想ホスト

これらは、weblogic.deploy.api.shared.WebLogicTargetType クラスの列挙フィールドの値です。

Tools パッケージ

以下の節では、一般的なデプロイメント ツールのタスクを最小限の制御で明示的にオブジェクトを操作して行うことができる API ツールについて説明します。

weblogic.deploy.api.tools

weblogic.deploy.api.tools には、便利なコンビニエンス クラスが用意されています。

  • WebLogicDeploymentManager の取得

  • アプリケーションのコンフィグレーションの設定

  • デプロイメント プランの新規作成または更新

Tools パッケージのクラス群は、J2EE Deployment API 標準のインタフェースの拡張ではありません (JSR-88、http://java.sun.com/j2ee/tools/deployment/index.jsp を参照)。これらのクラス群を使用すると、WebLogic デプロイメント API で提供されるデプロイメント オペレーションに簡単にアクセスできます。

SessionHelper

コンフィグレーション セッションは直接 WebLogicDeploymentManager から制御することもできますが、この制御を簡単に行えるメソッド群が SessionHelper に用意されています。使用しているツールで直接 WebLogic Server J2EE Deployment 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 を使用すると、アプリケーション内にある J2EE および WebLogic Server 記述子に基づいてデプロイメント プランのテンプレートを作成できます。結果として作成されるプランによりアプリケーションの構造が記述され、すべてのデプロイメント記述子が特定されて、アプリケーションのコンフィグレーション可能なプロパティのサブセットがエクスポートされます。プロパティがエクスポートされると、そのプロパティは WebLogic Server コンソールのようなツールに対して公開されます。そうしたツールではプランを使用して、管理者がプロパティに適切な値を指定できるように支援します。weblogic.PlanGenerator ツールからは、デフォルトではアプリケーションの依存関係、つまり正常なデプロイメントに必要なプロパティのみがエクスポートされます。この動作は以下のオプションの 1 つを用いてオーバーライドできます。

  • -dependencies : アプリケーションで参照するリソースをエクスポート (デフォルト)

  • -declarations : アプリケーションで定義されているリソースをエクスポート

  • -configurables : 非リソース指向のコンフィグレーション可能なプロパティをエクスポート

  • -dynamics : 実行中のアプリケーションで変更される可能性があるプロパティをエクスポート

  • -all : すべての変更可能なプロパティをエクスポート

  • -none : どのプロパティもエクスポートしない