ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Serverデプロイメントのプログラミング
11g リリース1 (10.3.6)
B60989-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストヘ移動
製品
目次へ移動
目次

前
 
次
 

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

WebLogicデプロイメントAPIはJava EEデプロイメント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のデプロイメントのフェーズ

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デプロイメントAPIのweblogic.Deployer実装

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

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


注意:

weblogic.Deployerは、WebLogic Server環境にお薦めするデプロイメント・ツールです。weblogic.DeployerおよびWebLogic Server管理コンソールの使用方法は、「Oracle WebLogic Serverへのアプリケーションのデプロイ」を参照してください。

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

Java EEデプロイメントAPIコンプライアンス

WebLogicデプロイメントAPIのクラスおよびインタフェースは、javax.enterprise.deployサブパッケージに記述されているJava EEデプロイメントAPI標準(JSR-88)インタフェースを拡張および実装します。(http://download.oracle.com/javaee/5/api/overview-summary.htmlを参照してください)。WebLogicデプロイメントAPIには、以下のパッケージが提供されています。

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

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

Service Provider Interfaceパッケージ

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.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デプロイメント記述子のプロパティがカプセル化されます。

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://download.oracle.com/javaee/5/api/javax/enterprise/deploy/model/package-summary.htmlを参照してください)。modelインタフェースでは、Java EEアプリケーションの標準的な要素(デプロイメント記述子など)を表現します。

weblogic.deploy.api.model

このパッケージには、デプロイ可能なオブジェクトの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を作成します。基本的な構成タスクを実行するには、WebLogicDDBeanWebLogicDConfigBeanに関連付けます。WebLogicDConfigBeanはWebLogic Serverへのアプリケーションのデプロイに必要なサーバー構成のプロパティを表しています。「アプリケーション評価」を参照してください。

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

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

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の定義は、以下をサポートするように拡張されています。

Java EEデプロイメントAPI標準(JSR-88、http://java.sun.com/j2ee/tools/deployment/index.jspを参照)では必須ではないWebLogicTargetTypeクラスでは、WebLogic Serverでサポートされる多様なデプロイメント・ターゲット・タイプが列挙されます。このクラスでjavaxのデプロイメント・クラスが拡張されません。「すべてのタイプのWebLogic Serverターゲットのサポート」を参照してください。

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

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

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

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

全種類のWebLogic Serverターゲットのサポート

Java EEデプロイメントAPI仕様では実装されていないターゲットはWebLogicデプロイメントAPIで実装されます。有効なターゲットの値は以下のとおりです。

  • クラスタ

  • JMSサーバー

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

  • サーバー

  • 仮想ホスト

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

Toolsパッケージ

次の項では、最小限の制御および明示的なオブジェクト操作で一般的なデプロイメント・ツールのタスクを実行できるAPIツールについて説明します。

weblogic.deploy.api.tools

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

  • WebLogicDeploymentManagerの取得

  • アプリケーションの構成の入力

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

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

SessionHelper

構成セッションは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: プロパティをエクスポートしません