Oracle® Fusion Middleware Oracle WebLogic Serverアプリケーションの開発 11g リリース1(10.3.6) B60990-04 |
|
前 |
次 |
次の項ではWebLogic Serverアプリケーションと基本概念について概説します。
このドキュメントは、Java Platform, Enterprise Edition 6を使用してWebLogic Server E-コマース・アプリケーションをビルドするアプリケーション開発者を対象としています。Web技術、オブジェクト指向プログラミング技術、およびJavaプログラミング言語について読者が精通していることを前提としています。
WebLogic Serverアプリケーションは、Javaプログラマ、Webデザイナ、アプリケーション・アセンブラによって作成されます。プログラマとデザイナは、アプリケーションのビジネス・ロジックとプレゼンテーション・ロジックを実装するモジュールを作成します。アプリケーション・アセンブラは、WebLogic Serverにデプロイ準備完了のアプリケーションにモジュールをアセンブルします。
WebLogic Serverは、Java Platform、Enterprise Edition (Java EE)バージョン5.0テクノロジを実装しています(http://www.oracle.com/technetwork/java/javaee/documentation/index.html
を参照)。Java EEは、Javaプログラミング言語に基づいた多層エンタープライズ・アプリケーションを開発するための標準プラットフォームです。Java EEを構成する技術は、オラクル社とその他のソフトウェア・ベンダーによって共同開発されました。
Java EEプログラミング・モデルの重要な点は、メタデータ・アノテーションが導入されたことです。アノテーションを使用すると、コンテナ内でのアプリケーション・コンポーネントの動作、依存関係インジェクションのリクエスト方法などをJavaクラス自体の中で指定でき、アプリケーションの開発プロセスを簡略化できます。アノテーションは、エンタープライズ・アプリケーションの以前のバージョン(Java EE 1.4以前)で必要だったデプロイメント記述子にかわるものです。
オラクル社は、次のように説明しています。Java EE 5の焦点は、開発の容易さにあります。Java EE 5では、記述するコードが少なくなっています。定型コードの多くは削除され、可能な限りデフォルト値が使用され、アノテーションを広範に使用することによって、デプロイメント記述子の必要性が低減されています。
EJB 3.0では、EJBをより簡単にプログラミングできます。具体的には、必要となるプログラミング・アーティファクトの数を減らし、Beanファイルをより簡単かつ直感的にプログラミングできるようにするEJB固有のメタデータ・アノテーションのセットが導入されています。EJB 3.0のもう1つの目標は、永続性フレームワークを標準化し、エンティティBeanプログラミング・モデルとオブジェクト・リレーショナル(O/R)マッピング・モデルの複雑さを軽減することです。WebLogic Serverでは、EJB仕様バージョン2.1も引続きサポートされています。
Java EE 5では、簡略化されたWebサービスがサポートされると共に、最新のWebサービスAPIが含まれており、サービス指向アーキテクチャ(SOA)には理想的な実装プラットフォームとなっています。
JavaServer Faces (JSF)技術とJSP Standard Tag Library (JSTL)によって、Webアプリケーションが簡単に構築できるようになっています。Java EE 5では、AJAXなど、Web 2.0向けのアプリケーション構築のために豊富なシン・クライアント技術がサポートされています。
WebLogic Server Java EEアプリケーションは、標準化され、モジュール化されたコンポーネントに基づいています。WebLogic Serverでは、これらのモジュール用にあらゆるサービスが用意され、細かなアプリケーションの動作を、プログラミングを必要とせずに自動的に処理します。Java EEでは、モジュールの動作とパッケージ化が汎用的で移植性の高い方法で定義されています。このため、実行時構成はモジュールを実際にアプリケーション・サーバーにデプロイするときに行います。
Java EEには、Webアプリケーション、EJBモジュール、Webサービス、エンタープライズ・アプリケーション、クライアント・アプリケーション、およびコネクタのデプロイメント仕様が含まれています。Java EEでは、どのようにアプリケーションをターゲット・サーバーにデプロイするかは指定されておらず、標準のモジュールまたはアプリケーションをパッケージ化する方法のみが指定されています。この仕様では、モジュールのタイプごとに必要なファイルとそれらのディレクトリ構造上の格納場所が定義されています。
Javaはプラットフォームに依存しないので、任意のプラットフォームでコードの編集とコンパイルを行い、別のプラットフォームで稼働する開発用WebLogic Serverでアプリケーションをテストできます。たとえば、WebLogic ServerアプリケーションをWindowsまたはLinuxが動作しているPCで開発する場合、そのアプリケーションが最終的にどこにデプロイされるかを考慮する必要はありません。
詳細は、Java EE仕様(http://download.oracle.com/javaee/5/api/
)を参照してください。
WebLogic Server Java EEアプリケーションは、WebLogic Server上で動作する以下のモジュールまたはアプリケーションのいずれかを含みます。
Webアプリケーション・モジュール - HTMLページ、サーブレット、JavaServer Pages、および関連ファイル。「Webアプリケーション・モジュール」を参照してください。
Enterprise JavaBeans (EJB)モジュール - エンティティBean、セッションBean、およびメッセージドリブンBean。「Enterprise JavaBeansモジュール」を参照してください。
コネクタ・モジュール - リソース・アダプタ。「コネクタ・モジュール」を参照してください。
エンタープライズ・アプリケーション - アプリケーションにパッケージ化されたWebアプリケーション・モジュール、EJBモジュール、リソース・アダプタ、およびアプリケーションにパッケージ化されたWebサービス。「エンタープライズ・アプリケーション」を参照してください。
Web Services - 「WebLogic Webサービス」を参照してください。
WebLogicアプリケーションには、以下のWebLogic固有のモジュールを含めることもできます。
JDBCおよびJMSモジュール - 「JMSおよびJDBCモジュール」を参照してください。
Weblogic診断フレームワーク(WLDF)モジュール - 「WebLogic診断フレームワーク・モジュール」を参照してください。
WebLogic ServerのWebアプリケーションには、以下のファイルが含まれています。
少なくとも1つのサーブレットまたはJSP、およびヘルパー・クラス。
必要に応じて、web.xml
デプロイメント記述子(WARファイルの内容を記述するJava EE標準のXMLドキュメント)。
必要に応じて、weblogic.xml
デプロイメント記述子(WebアプリケーションのWebLogic Server固有の要素が格納されるXMLドキュメント)。
Webアプリケーションには、HTMLページおよびXMLページ、およびそれらに付属する画像やマルチメディア・ファイルなどのサポート・ファイルが含まれている場合もあります。
サーブレットはWebLogic Serverで実行されるJavaクラスであり、クライアントからリクエストを受け取り、そのリクエストを処理して、必要に応じてクライアントにレスポンスを返します。HttpServletは主に、Webブラウザのリクエストに応えて動的なWebページを生成するために使用します。
JavaServer Pages (JSP)は、JavaコードをWebページに埋め込むことができる拡張HTMLで記述されたWebページです。JSPでは、HTMLに似たタグを使用して、タグ・ライブラリと呼ばれるカスタムJavaクラスを呼び出すことができます。appc
コンパイラは、JSPをコンパイルし、サーブレットに変換します。WebLogic Serverでは、サーブレット・クラス・ファイルが存在しないか、またはJSPソース・ファイルよりもタイムスタンプが古い場合にJSPが自動的にコンパイルされます。「wlappcを使用したモジュールおよびアプリケーションのビルド」を参照してください。
サーバーでのコンパイルを避けるために、あらかじめJSPをコンパイルし、サーブレット・クラスをWebアプリケーション(WAR)ファイルにパッケージ化することもできます。サーブレットおよびJSPでは、Webアプリケーションと共にデプロイするヘルパー・クラスがさらに必要な場合があります。
Enterprise JavaBeans (EJB)は、ビジネス・タスクまたはエンティティを実装するサーバー側Javaモジュールで、EJB仕様に基づいて記述されています。EJBには、セッションBean、エンティティBean、およびメッセージドリブンBeanの3種類があります。
Enterprise JavaBeans (EJB) 3.0は、コンポーネント・ベースのビジネス・アプリケーションを開発およびデプロイメントするためのJava EE 5技術です。EJB 2.Xは強力で有用な技術ですが、プログラミング・モデルは複雑でわかりにくく、非常に単純なEJBでも複数のJavaファイルとデプロイメント記述子を作成する必要がありました。このような複雑さが、EJBの普及を妨げていました。
そのため、EJB仕様バージョン3.0では、EJBをより簡単にプログラムできるようにすることが目標の1つになっています。具体的には、必要となるプログラミング・アーティファクトの数を減らし、Beanファイルをより簡単かつ直感的にプログラミングできるようにするEJB固有のメタデータ・アノテーションのセットが導入されています。EJB 3.0仕様のもう1つの目標は、永続性フレームワークを標準化し、エンティティBeanプログラミング・モデルとオブジェクト・リレーショナル(O/R)マッピング・モデルの複雑さを軽減することです。
Enterprise JavaBeans 3.0の詳細は、Oracle WebLogic Server WebLogic Enterprise JavaBeansバージョン3.0のプログラミングを参照してください。
Enterprise JavaBeans 2.Xの詳細は、「Enterprise JavaBeansについて」を参照してください。
セッションBeanは、単一のセッション時に単一のクライアントに代わって特定のビジネス・タスクを実行します。セッションBeanは、ステートフルにもステートレスにもなりますが、永続的ではありません。クライアントでセッションBeanの利用が終わると、そのBeanは消えてなくなります。
エンティティBeanは、データ・ストア(通常はリレーショナル・データベース・システム)のビジネス・オブジェクトを表します。永続性(データのロードと保存)は、Beanで管理される場合とコンテナで管理される場合があります。データ・オブジェクトをメモリー内で表現するだけではなく、エンティティBeanにはそれらが表すビジネス・オブジェクトの動作をモデル化するメソッドがあります。エンティティBeanは、複数のクライアントで同時にアクセスでき、当然ながら永続的です。
コンテナは、メッセージドリブンBeanのインスタンスを作成するか、またはインスタンスをプールから割り当てて、メッセージを処理します。JMS宛先でメッセージが受信されると、メッセージドリブンBeanではメッセージを処理するためにそれ自身のインスタンスがプールから割り当てられます。メッセージドリブンBeanは、クライアントとは関連付けられません。それらは単に到着したメッセージを処理するだけです。
Java EEでは、EJB仕様をサポートするEJBサーバーの間でモジュールを確実に移植できるように、開発とデプロイメントのロールが明確に区別されます。WebLogic ServerにEJBをデプロイするには、そのEJBのセキュリティ、トランザクション、およびライフ・サイクルの各ポリシーを実行するクラスを生成するWebLogic Server appc
コンパイラが動作している必要があります。「wlappcを使用したモジュールおよびアプリケーションのビルド」を参照してください。
Java EE指定のデプロイメント記述子ejb-jar.xml
では、EJBアプリケーションにパッケージ化されたエンタープライズBeanが記述されます。この記述子では、Beanのタイプと名前、そしてホーム・インタフェースとリモート・インタフェースおよび実装クラスの名前が定義されます。また、ejb-jar.xml
デプロイメント記述子では、Beanのセキュリティ・ロールおよびBeanのメソッドのトランザクション動作も定義されます。
追加のデプロイメント記述子では、WebLogic固有のデプロイメント情報が提供されます。コンテナ管理のエンティティBean固有のweblogic-cmp-rdbms-jar.xml
デプロイメント記述子では、Beanがデータベースの表にマップされます。weblogic-ejb-jar.xml
デプロイメント記述子では、JNDIバインド名、クラスタリングやキャッシュの構成などのWebLogic Server
環境に固有の追加情報が提供されます。
コネクタ(別称リソース・アダプタ)にはJava、および必要に応じてエンタープライズ情報システム(EIS)と対話するために必要なネイティブ・モジュールが含まれています。WebLogic Server環境にデプロイされたリソース・アダプタを使用すると、Java EEアプリケーションでリモートEISにアクセスできるようになります。WebLogic Serverアプリケーションの開発者は、HTTPサーブレット、JavaServer Pages (JSP)、Enterprise JavaBeans (EJB)、およびその他のAPIを使用して、EISのデータとビジネス・ロジックを使用する統合アプリケーションを開発できます。
WebLogic Serverにリソース・アダプタをデプロイするには、まずWebLogic Server固有のデプロイメント記述子であるweblogic-ra.xml
ファイルを作成して構成し、これをデプロイメント・ディレクトリに追加する必要があります。WebLogic Serverへのリソース・アダプタのデプロイは、スタンドアロン・モジュールまたはエンタープライズ・アプリケーションの一部として行えます。「エンタープライズ・アプリケーション」を参照してください。
コネクタの詳細は、『Oracle WebLogic Serverリソース・アダプタのプログラミング』を参照してください。
エンタープライズ・アプリケーションは、1つまたは複数のWebアプリケーション・モジュール、EJBモジュール、およびリソース・アダプタで構成されています。また、クライアント・アプリケーションが含まれていることもあります。エンタープライズ・アプリケーションは必要に応じて、エンタープライズ・アプリケーションの標準Java EEデプロイメント記述子であるapplication.xml
ファイルによって定義できます。
Java EEプログラミング・モデルの重要な点は、メタデータ・アノテーションが導入されたことです。アノテーションを使用すると、コンテナ内でのアプリケーションの動作、依存関係インジェクションのリクエスト方法などをJavaクラス自体の中で指定でき、アプリケーションの開発プロセスを簡略化できます。アノテーションは、エンタープライズ・アプリケーションの以前のバージョン(1.4以前)で必要とされたデプロイメント記述子にかわるものです。
Java EEアノテーションの使用により、標準のapplication.xml
およびweb.xml
デプロイメント記述子は省略可能になりました。このJava EEプログラミング・モデルでは、EJB、サーブレット、Webアプリケーション、JSPなどのWebコンテナ用のJDK 5.0アノテーション機能を使用します(http://download.oracle.com/javaee/5/api/
を参照)。第7章「Java EEアノテーションと依存関係インジェクションの使用」を参照してください。
WebLogic Server固有の拡張機能が含まれているアプリケーションの場合は、さらにweblogic-application.xml
ファイルでも定義されます。クライアント・モジュールを含むエンタープライズ・アプリケーションには、client-application.xml
デプロイメント記述子とWebLogic実行時クライアント・アプリケーション・デプロイメント記述子も備わっています。付録A「エンタープライズ・アプリケーションのデプロイメント記述子の要素」を参照してください。
生産目的と開発目的の両方の場合において、エンタープライズ・アプリケーションの一部として、スタンドアロンのWebアプリケーション、EJBおよびリソース・アダプタもパッケージ化およびデプロイすることをお薦めします。それにより、アプリケーション開発を大幅に容易にするOracleの分割開発ディレクトリ構造を使用できるようになります。第3章「分割開発ディレクトリ環境の作成」を参照してください。
エンタープライズ・アプリケーションは、Webアプリケーション・モジュール、EJBモジュール、およびリソース・アダプタで構成されています。これは次のようにパッケージ化できます。
開発が目的の場合は、WebLogic分割開発ディレクトリ構造をお薦めします。単一のアーカイブEARファイルまたは展開されたEARディレクトリ構造ではなく、分割開発ディレクトリではソース・ファイルと出力ファイルを分離する2つの並列ディレクトリが存在します。このディレクトリ構造は、単一のWebLogic Serverインスタンスでの開発用に最適化されています。第3章「分割開発ディレクトリ環境の作成」を参照してください。Oracleでは、JARユーティリティを使用しなくてもEARを作成できるwlpackage
Antタスクを提供しています。これは、分割開発ディレクトリ構造でのみ使用できます。「wlpackageを使用したアプリケーションのパッケージ化」を参照してください。
開発目的の場合は、さらに分割開発ディレクトリ構造を使用できるようスタンドアロンのWebアプリケーションおよびEnterprise JavaBeans (EJB)をエンタープライズ・アプリケーションの一部としてパッケージ化することをお薦めします。「分割開発ディレクトリでのJava EEコンポーネントの配置」を参照してください。
本番用の場合は、展開(非アーカイブ)ディレクトリ形式をお薦めします。この形式を使うと、アプリケーションを再デプロイすることなくファイルを更新できます。アーカイブ・ファイルを更新するには、ファイルのアーカイブを展開および更新し、その後再アーカイブして再デプロイする必要があります。
拡張子.ear
の付いたjar
ユーティリティを使用してアプリケーションをJARアーカイブ・ファイルとしてパッケージ化することを選択できます。アーカイブ・ファイルは配布がしやすく、占める領域が少なくてすみます。EARファイルには、アプリケーションのすべてのJAR、WAR、およびRARモジュール・アーカイブ・ファイル、およびバンドルされたモジュールを記述するXML記述子が格納されます。「wlpackageを使用したアプリケーションのパッケージ化」を参照してください。
省略可能なMETA-INF/application.xml
デプロイメント記述子には、各Webアプリケーション、EJB、およびコネクタ・モジュールの要素のほか、セキュリティ・ロールやアプリケーション・リソース(データベースなど)を記述するための追加の要素があります。この記述子が存在する場合、WebLogicデプロイヤは、この記述子からモジュールのリストを選択します。ただし、この記述子が存在しない場合、コンテナはPOJO (プレーンな従来型Javaオブジェクト)クラスで定義されるアノテーションから、モジュールを推測します。付録A「エンタープライズ・アプリケーションのデプロイメント記述子の要素」を参照してください。
Webサービスは、分散型Webベース・アプリケーションのモジュールとして共有され、使用されます。これらのサービスは一般的に、CRM (カスタマ・リレーションシップ・マネージメント)システム、注文処理システムなどの既存のバックエンド・アプリケーションと連携します。Webサービスは別々のコンピュータ上に常駐でき、多様なテクノロジを使用して実装することができますが、HTTPなどの標準のWebプロトコルを使用してパッケージ化されトランスポートされます。そのため、Web上のどのようなユーザーでも簡単にアクセスできます。
Webサービスは、最低限、次のモジュールから構成されています。
Web上のサーバーによってホストされるWebサービス実装。WebLogic Webサービスは、WebLogic Serverによってホストされます。Javaクラス、またはWebサービスを実装するEJBのいずれかを含む場合もあります。Webサービスは、実装に応じて、Webアプリケーション・アーカイブ(WAR)またはEJBモジュール(JAR)のどちらかとしてパッケージ化されます。
Webサービスとそのユーザー間のデータ転送とWebサービス呼出しの標準WebLogic Webサービスでは、Simple Object Access Protocol (SOAP) 1.1をメッセージ・フォーマットとして使用し、HTTPを接続プロトコルとして使用します。
Webサービスを起動できるようにクライアントに記述するための標準WebLogic Webサービスは、XMLベースの仕様であるWeb Services Description Language (WSDL) 1.1を使用して記述しています。
Webサービスを呼び出すためのクライアント用の標準 - JAX-WSまたはJAX-RPC。それぞれにつき、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』または『Oracle WebLogic Server JAX-RPC Webサービス・スタート・ガイド』を参照してください。
Webサービスを検索して登録するための規格(UDDI)。
WebLogic Webサービスおよびサポートされている標準の詳細は、『Oracle WebLogic Server WebLogic Webサービスの紹介』を参照してください。
JMSおよびJDBCの構成は、それぞれweblogic-jms.xsd
およびjdbc-data-source.xsd
スキーマに準拠するXMLファイルによって定義されたモジュールとして格納されます。これらのモジュールは、標準のJava EEモジュールに類似しています。管理者はグローバルなシステム・リソースとして、Java EEアプリケーションと共にパッケージ化されるモジュール(パッケージ化されたリソース)として、またはグローバルに使用可能なスタンドアロンのモジュールとして、JMSおよびJDBCモジュールを作成したり管理したりできます。
JMSおよびJDBCリソースのモジュール形式のデプロイメントを利用すると、エンタープライズ・アプリケーション・ファイル(EARファイルなど)やJMSまたはJDBCのスタンドアロン・モジュールを開いたり、JMSやJDBCの手動による膨大な再構成を行わずに、アプリケーションと必要なJMSまたはJDBC構成を、ある環境から別の環境に(たとえば、テスト環境から本番環境に)移行できます。
アプリケーション開発者は、エンタープライズ・レベルのIDEまたはXMLファイルの編集に対応した開発ツールでアプリケーション・モジュールを作成し、そのJMSまたはJDBCモジュールをアプリケーションの一部としてパッケージ化して、そのアプリケーションをデプロイするためにWebLogic管理者に渡します。
詳細は、次を参照してください:
JMSアプリケーション・モジュールのデプロイメントの構成
JDBCアプリケーション・モジュールのデプロイメントの構成
WebLogic診断フレームワーク(WLDF)では、WebLogic Serverインスタンスおよびサーバー・インスタンスにデプロイされたアプリケーションから診断データを生成、収集、解析、永続化できます。サーバー・スコープの診断では、一部のWLDF機能は、ドメインの構成の一部として構成されます。その他の機能は、サーバー(またはクラスタ)をターゲット指定できるシステム・リソース記述子として構成されます。アプリケーション・スコープの診断では、診断機能は、アプリケーションのリソース記述子として構成されます。
アプリケーション・スコープのインストゥルメンテーションは、診断システム・モジュールに類似した診断モジュールとして構成およびデプロイされます。ただし、アプリケーション・モジュールは、アプリケーション・アーカイブでパッケージ化されたweblogic-diagnostics.xml
というXML構成ファイルに構成されます。
アプリケーション用にインストゥルメンテーションを構成する詳細な手順については、「アプリケーション・スコープのインストゥルメンテーションの構成」を参照してください。
WLSでは、外部診断記述子を使用できるため、診断記述子をインポートしていないアプリケーションに診断機能を統合することも可能です。この機能では、デプロイメント・ビュー、およびアプリケーションまたはモジュールのデプロイメントがサポートされ、デプロイメント・プラン(plan.xml
)内に外部診断記述子が宣言されている場合に、その記述子の存在が検出されます。
まず、診断記述子を外部ファイルとして定義し、そのURIをplan.xml
ファイル内で構成します。例:
<module-override> <module-name>reviewService.ear</module-name> <module-type>ear</module-type> </module-descriptor> <module-descriptor external="true"> <root-element>wldf-resource</root-element> <uri>META-INF/weblogic-diagnostics.xml</uri> ... ... </module-override> <config-root>D:\plan</config-root>
次に、外部診断記述子ファイルをそのURIに配置します。上のサンプルであれば、記述子ファイルをd:\plan\ META-INF
に配置します。
デプロイメント構成は、特定のWebLogic Serverドメインにエンタープライズ・アプリケーションをデプロイするために必要となるデプロイメント記述子の値を定義するプロセスです。アプリケーションまたはモジュールに関するデプロイメント構成は、Java EEデプロイメント記述子、WebLogic Server記述子およびWebLogic Serverデプロイメント・プランの3種類のXMLドキュメントに格納されます。この項では、Java EEおよびWebLogic固有のデプロイメント記述子について説明します。デプロイメント・プランについては、「デプロイメント・プラン」を参照してください。
このJava EEプログラミング・モデルでは、EJB、サーブレット、Webアプリケーション、JSPなどのWebコンテナ用のJDK 5.0アノテーション機能を使用します。(http://download.oracle.com/javaee/5/api/
を参照)。アノテーションを使用すると、コンテナ内でのコンポーネントの動作、依存関係インジェクションのリクエスト方法などをJavaクラス自体の中で指定でき、アプリケーションの開発プロセスを簡略化できます。アノテーションは、以前のバージョンのWebアプリケーション(2.4以前)、エンタープライズ・アプリケーション(1.4以前)、およびEnterprise JavaBeans (2.x以前)で必要だったデプロイメント記述子にかわるものです。第7章「Java EEアノテーションと依存関係インジェクションの使用」を参照してください。
しかしながら、デプロイメント記述子は、エンタープライズ・アプリケーションで完全にサポートされます。ただし、Java EE標準のデプロイメント記述子は必須ではありません。たとえば、従来のEJB 2.xプログラミング・モデルを使用したい場合や、後々の開発やデプロイメントの段階でより細かくカスタマイズできるようにしたい場合、メタデータ・アノテーションに加えて(またはメタデータ・アノテーションの代わりに)標準のデプロイメント記述子を作成できます。
モジュールとアプリケーションには、ディレクトリまたはJARファイルの内容を記述したデプロイメント記述子というXMLドキュメントが組み込まれています。デプロイメント記述子は、XMLタグでフォーマットされたテキスト・ドキュメントです。Java EE仕様では、Java EEモジュールおよびアプリケーション用の標準的で移植性の高いデプロイメント記述子が定義されています。Oracleでは、モジュールまたはアプリケーションをWebLogic Server環境にデプロイするときに使用するWebLogic固有のデプロイメント記述子をさらに定義しています。
表1-1に、モジュールとアプリケーションのタイプと、それらのJava EE標準およびWebLogic固有のデプロイメント記述子を示します。
注意: 次の表にリストされているWebLogicデプロイメント記述子のXMLスキーマには、WebLogic固有のすべてのデプロイメント記述子で共有される要素を記述するhttp://xmlns.oracle.com/weblogic/weblogic-javaee/1.2/weblogic-javaee.xsd スキーマの要素も含まれています。
最新のスキーマ情報は、 |
表1-1 Java EEとWebLogicのデプロイメント記述子
モジュールまたはアプリケーション | スコープ | デプロイメント記述子 |
---|---|---|
Webアプリケーション |
Java EE |
web.xml
|
WebLogic |
weblogic.xml スキーマ: 『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』のweblogic.xmlデプロイメント記述子の要素に関する項を参照してください。 |
|
エンタープライズBean 3.0 |
Java EE |
ejb-jar.xml
|
WebLogic |
weblogic-ejb-jar.xml スキーマ: weblogic-rdbms-jar.xml スキーマ: persistence-configuration.xml スキーマ: Oracle WebLogic Server WebLogic Enterprise JavaBeansバージョン3.0のプログラミングを参照してください。 |
|
エンタープライズBean 2.1 |
Java EE |
ejb-jar.xml
|
WebLogic |
weblogic-ejb-jar.xml スキーマ: Oracle WebLogic Server WebLogic Enterprise JavaBeansのプログラミングのweblogic-ejb-jar.xmlデプロイメント記述子に関する項を参照してください。
スキーマ: Oracle WebLogic Server WebLogic Enterprise JavaBeansのプログラミングのweblogic-cmp-rdbms-jar.xmlデプロイメント記述子に関する項を参照してください。 |
|
Webサービス |
Java EE |
webservices.xml
|
WebLogic |
weblogic-webservices.xml スキーマ: weblogic-wsee-clientHandlerChain.xml weblogic-webservices-policy.xml スキーマ: weblogic-wsee-standaloneclient.xml 『Oracle WebLogic Server WebLogic Webサービス・リファレンス』のWebLogic Webサービス・デプロイメント記述子要素リファレンスに関する項を参照してください。 |
|
リソース・アダプタ |
Java EE |
ra.xml
|
WebLogic |
weblogic-ra.xml
Schema:
『Oracle WebLogic Serverリソース・アダプタのプログラミング』のweblogic-ra.xmlスキーマに関する項を参照してください。 |
|
エンタープライズ・アプリケーション |
Java EE |
application.xml
|
WebLogic |
weblogic-application.xml スキーマ: 「weblogic-application.xmlデプロイメント記述子の要素」を参照してください。 |
|
クライアント・アプリケーション |
Java EE |
application-client.xml
|
WebLogic |
application-client.xml スキーマ: 『Oracle WebLogic Serverスタンドアロン・クライアントのプログラミング』のJava EEアプリケーション・クライアント(シン・クライアント)の開発に関する項を参照してください。 |
|
HTTP Pub/Subアプリケーション |
WebLogic |
weblogic-pubsub.xml スキーマ: 『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』のHTTPパブリッシュ/サブスクライブ・サーバーの使用方法に関する項を参照してください。 |
JMSモジュール |
WebLogic |
スキーマ: 『Oracle WebLogic Server JMSの構成と管理』のデプロイメント用のJMSアプリケーション・モジュールの構成に関する項を参照してください。 |
JDBCモジュール |
WebLogic |
スキーマ: 『Oracle WebLogic Server JDBCの構成と管理』のデプロイメント用のJDBCアプリケーション・モジュールの構成に関する項を参照してください。 |
デプロイメント・プラン |
WebLogic |
plan.xml スキーマ: 『Oracle WebLogic Serverへのアプリケーションのデプロイ』のWebLogic Serverデプロイメントに関する項を参照してください。 |
WLDFモジュール |
WebLogic |
weblogic-diagnostics.xml スキーマ: 『Oracle WebLogic Server診断フレームワークの構成と使用』のWLDFアプリケーション・モジュールのデプロイメントに関する項を参照してください。 |
モジュールまたはアプリケーションをパッケージ化する場合は、デプロイメント記述子を格納するディレクトリ(WEB-INF
またはMETA-INF
)を作成し、次にそのディレクトリ内にXMLデプロイメント記述子を作成します。
WebLogic Serverでは、デプロイメント記述子を自動生成するための様々なツールを用意しています。これらについては、これ以降の項で説明します。
EJBGenは、Javadocマークアップを使用してEJBデプロイメント記述子ファイルを生成するEnterprise JavaBeans 2.xのコード・ジェネレータまたはコマンド・ライン・ツールです。Beanクラス・ファイルにJavadocタグでアノテーションを付け、EJBGenを使用してリモート・クラスとホーム・クラスおよびEJBアプリケーション用のデプロイメント記述子ファイルを生成し、EJB.java
および記述子ファイルの編集および管理が必要なファイルを1つに減らせます。Oracle WebLogic Server WebLogic Enterprise JavaBeansのプログラミングのEJBGenリファレンスに関する項を参照してください。
WebLogic Serverには、Webアプリケーションやエンタープライズ・アプリケーションの標準Java EEデプロイメント記述子とWebLogic固有のデプロイメント記述子の両方を自動的に生成するJavaベースのコマンド・ライン・ユーティリティがあります。
これらのコマンド・ライン・ユーティリティは、ステージング・ディレクトリにアセンブルしたクラスを検証し、サーブレット・クラスなどを基に適切なデプロイメント記述子を構築します。以下のようなユーティリティがあります。
java weblogic.marathon.ddinit.EarInit
- エンタープライズ・アプリケーションのデプロイメント記述子を自動生成します。
java weblogic.marathon.ddinit.WebInit
- Webアプリケーションのデプロイメント記述子を自動生成します。
たとえば、DDInit
では、Webアプリケーションを構成するJSPファイルやその他のオブジェクトを含むc:\stage
というディレクトリを作成したものの、web.xml
およびweblogic.xml
デプロイメント記述子を作成していない場合があります。それらを自動的に生成するには、次のコマンドを実行します。
prompt> java weblogic.marathon.ddinit.WebInit c:\stage
ユーティリティによってweb.xml
およびweblogic.xml
デプロイメント記述子が生成され、WEB-INF
ディレクトリに配置されます(WEB-INFディレクトリがない場合はDDInit
によって作成されます)。
WebLogic Serverの新しいリリースにアプリケーションを移行する場合は、現行のJava EE仕様とWebLogic Serverのリリースの機能をアプリケーションで利用できるように、必ずデプロイメント記述子をアップグレードしておくことをお薦めします。
Java EEアプリケーションとモジュールのデプロイメント記述子をアップグレードするには、まずweblogic.DDConverter
ツールを使用して、アップグレードした記述子を一時ディレクトリに生成します。アップグレードしたデプロイメント記述子を調べて、その記述子が正しいことを確認したら、新しいデプロイメント記述子ファイルを持つJava EEモジュール・アーカイブまたは展開されたディレクトリを再パッケージ化します。
次のコマンドでweblogic.DDConverter
を呼び出します。
prompt> java weblogic.DDConverter [options] archive_file_or_directory
archive_file_or_directory
は、エンタープライズ・アプリケーション、Webアプリケーション、EJB、リソース・アダプタのアーカイブ・ファイル(EAR、WAR、JAR、RAR)または展開されたディレクトリです。
次の表では、weblogic.DDConverter
コマンド・オプションを説明します。
オプション | 説明 |
---|---|
-d < dir> |
記述子が作成されるディレクトリを指定します。 |
-help |
標準の使用方法メッセージを出力します。 |
-quiet |
エラー・メッセージを除く出力メッセージをオフにします。 |
-verbose | デバッグで使用する追加出力をオンにします。 |
次の例では、weblogic.DDConverter
コマンドを使用して、my.ear
エンタープライズ・アプリケーションのアップグレードされたデプロイメント記述子をカレント・ディレクトリのサブディレクトリtempdir
に生成する方法を示します。
prompt> java weblogic.DDConverter -d tempdir my.ear
デプロイメント・プランは、特定のWebLogic Server環境のためのアプリケーションのWebLogic Serverデプロイメント構成を定義する、XMLドキュメントです。デプロイメント・プランは、アプリケーションのアーカイブ・ファイルの外部にあり、アプリケーションの既存のWebLogic Serverデプロイメント記述子に格納されているデプロイメント・プロパティに対して変更を適用することができます。デプロイメント・プランを使用すると、Java EEやWebLogic固有の既存のデプロイメント記述子を修正することなく、特定の環境についてのアプリケーションのWebLogic Server構成を簡単に変更できます。複数のデプロイメント・プランを使用すると、単一のアプリケーションを、複数の様々なWebLogic Server環境にデプロイされるように再構成できます。
プログラマは、アプリケーションのプログラミングを完了したら、デプロイメント構成をエクスポートして、アプリケーションを新しいWebLogic Server環境にデプロイするために管理者が使用するカスタム・デプロイメント・プランを作成します。そして、アプリケーションを環境に合わせて構成するための青写真としてデプロイメント・プランを使用するデプロイヤ(たとえば、テスト管理者、ステージング管理者または本番管理者)に、アプリケーション・デプロイメント・ファイルとカスタム・デプロイメント・プランの両方を配布します。
WebLogic Serverには、アプリケーションのデプロイメント構成のエクスポートを支援するため、以下のツールが用意されています。
weblogic.PlanGenerator
。WebLogic Serverデプロイメント記述子の選択されたカテゴリについて、null変数を備えるテンプレート・デプロイメント・プランを作成します。エクスポート・プロセスを開始しているところであり、デプロイメント記述子のクラス全体に対してnull変数を備えるテンプレート・デプロイメント・プランを作成する必要がある場合は、このツールの使用をお薦めします。
管理コンソールは、インストールされているアプリケーションの構成プロパティが変更されると、必要に応じてデプロイメント・プランを更新または新規作成します。管理コンソールを使用して、新しいデプロイメント・プランを生成したり、既存のプラン内の変数を追加またはオーバーライドできます。記述子プロパティのカテゴリ全体をエクスポートするのではなく、プラン内の個々のデプロイメント記述子プロパティを対話形式で追加または編集できるため、管理コンソールにはweblogic.PlanGenerator
よりも高い柔軟性があります。
デプロイメント・プランの作成と使用方法の詳細は、次を参照してください。
WebLogic Serverデプロイメントについて
新しい環境にデプロイメントするためのアプリケーションのエクスポート
WebLogic Serverデプロイメント・プランについて
次の項では、WebLogic Serverアプリケーションを開発するための必須ツールや省略可能なツールについて説明します。
WebLogic Serverによるアプリケーションのビルド方法としては、Apache Antが最適です。Antは、Javaベースのビルド・ツールです。Antの利点の1つは、これがシェル・ベースのコマンドではなく、Javaクラスで拡張されていることです。WebLogic Server分割開発ディレクトリ環境を使用してアプリケーションをコンパイル、ビルド、デプロイ、パッケージ化するための様々なAnt拡張クラスを利用できます。
もう1つの利点は、Antがクロス・プラットフォーム・ツールであるということです。開発者は、eXtensible Markup Language (XML)で、Antによるスクリプトを作成します。XMLタグは、ビルドするターゲット、ターゲット間の依存関係、およびターゲットを構築するための実行タスクを定義します。AntライブラリはWebLogic Serverに付属していて、製品パッケージからJavaアプリケーションを簡単に構築できるようになっています。
Antを使用するには、まずWL_SERVER
\samples\domains\wl_server
ディレクトリ(WL_SERVER
はWebLogic Serverインストール・ディレクトリ)にあるsetExamplesEnv.cmd
(Windows)またはsetExamplesEnv.sh
(UNIX)コマンドを実行して、環境を設定する必要があります。
Antの機能の包括的な説明については、http://jakarta.apache.org/ant/manual/index.html
を参照してください。
注意: Apache JakartaのWebサイトでは、Antの最新バージョンに関するオンライン・ドキュメントのみを公開しています。このAntは、WebLogic Serverに同梱されているものとはバージョンが異なる可能性があります。WebLogic Serverに同梱されているAntのバージョンを調べるには、WebLogic環境の設定後、次のコマンドを実行します。prompt> ant -version 特定のバージョン(たとえば、WebLogic Serverに含まれるバージョン)のAntのドキュメントを参照するには、 |
クロス・プラットフォーム・スクリプトをコンパイルするAntの使い方、またはAntによって処理可能なXMLスクリプトを作成するクロス・プラットフォーム・スクリプトの使い方については、WL_HOME
/samples/server/examples/src/examples/ejb20/basic/beanManaged/build.xml
などの任意のWebLogic Serverサンプルを参照してください。
また、Antを使ってサンプルを構築する方法を説明したWebLogic Serverドキュメント(WL_HOME
/samples/server/examples/src/examples/examples.html
)も参照してください。
WebLogic Serverに同梱されているAntが不十分な場合は、独自のバージョンのAntを使用できます。WebLogic Serverに同梱されているAntのバージョンを判断するには、WebLogic環境の設定後、次のコマンドを実行します。
prompt> ant -version
別のバージョンのAntを使用する予定がある場合は、WL_HOME
\server\lib\ant
ディレクトリの適切なJARファイルを更新されたバージョンのファイルで置き換えるか、新しいファイルをCLASSPATHの前に追加します。なお、WL_HOME
は、WebLogicのメイン・インストール・ディレクトリ(c:\Oracle\Middleware\wlserver_10.x
など)です。
デフォルトでは、環境スクリプトは128 MBのヒープ・サイズをAntに割り当てます。ローカル環境変数ANT_OPTS
に-X
オプションを設定すると、この値を独自のプロジェクトに合わせて増減できます。例:
prompt> setenv ANT_OPTS=-Xmx128m
ヒープ・サイズを永続的に設定する場合は、環境を設定するスクリプトのMEM_ARGS
変数を追加または更新し、WebLogic Serverを起動するなどの操作を行います。次の、WebLogic Serverインスタンスを起動するWindowsコマンド・スクリプトの抜粋を参照してください。
set MEM_ARGS=-Xms32m -Xmx200m
MEM_ARGS
変数の使用例については、WL_HOME
/server/bin
のスクリプトとコマンドを参照してください。
Javaソース・ファイル、構成ファイル、HTMLまたはXMLページ、およびJavaServer Pagesの編集には、テキスト・エディタが必要です。WindowsとUNIXの行末コードの違いを適切に処理するエディタが望ましいですが、それ以外には特別な要件は何もありません。HTML/XMLページおよびJavaServer Pagesは、通常のテキスト・エディタか、またはDreamWeaverなどのWebページ・エディタで編集できます。XMLページの場合、DTD検証機能を備えたエンタープライズ・レベルのIDE、またはXMLファイルの編集をサポートするその他の開発ツールを使用できます。
データベース・システムは、ほぼすべてのWebLogic Serverアプリケーションで必要となります。標準JDBCドライバを介してアクセスできる任意のDBMSを使用できますが、WebLogic Java Message Service (JMS)などのサービスでは、Oracle、Sybase、Informix、Microsoft SQL ServerまたはIBM DB2をサポートするJDBCドライバが必要です。サポート対象のデータベース・システムとJDBCドライバについては、http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html
で「Oracle Fusion Middleware Supported System Configurations」を参照してください。
ほとんどのJava EEアプリケーションは、Webブラウザ・クライアントによって実行されるように設計されています。WebLogic ServerはHTTP 1.1仕様をサポートしており、FirefoxおよびMicrosoft Internet Explorerブラウザの現行バージョンでテストされています。
作成するアプリケーションの条件を書き出す場合、どのWebブラウザ・バージョンをサポートするかに留意してください。テスト・プランには、サポートされるバージョンごとのテスト計画を含めます。バージョン番号とブラウザ構成は明確に指定します。作成するアプリケーションはセキュア・ソケット・レイヤー(SSL)プロトコルをサポートしますか。ブラウザの代替セキュリティ設定をテストして、サポートしているセキュリティをユーザーに通知できるようにします。
アプリケーションがアプレットを使用する場合、様々なブラウザに埋め込まれているJVMには違いがあるため、サポートするブラウザの構成をテストすることが特に重要です。解決策の1つは、Javaプラグインをインストールするようユーザーに指示して、すべてのユーザーが同じJavaランタイム・バージョンを持つようにすることです。
サード・パーティのソフトウェア製品を使用して、WebLogic Server開発環境を強化することができます。アプリケーション・サーバーをサポートする製品の開発者ツール情報の詳細は、http://www.oracle.com/technology/products/developer-tools/index.html
の「WebLogic Developer Tools Resources」を参照してください。
注意: ソフトウェア・ベンダーに問い合わせて、使用しているプラットフォームとWebLogic Serverのバージョンにソフトウェアが対応しているかどうかを確認してください。 |