Oracle® Fusion Middleware Oracle WebLogic Serverアプリケーションの開発 12c リリース1 (12.1.1) B65893-02 |
|
![]() 前 |
![]() 次 |
この章では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)バージョン6.0技術を実装しています(http://www.oracle.com/technetwork/java/javaee/overview/index.html
を参照)。Java EEは、Javaプログラミング言語に基づいた多層エンタープライズ・アプリケーションを開発するための標準プラットフォームです。Java EEを構成する技術は、いくつかのソフトウェア・ベンダーによって共同開発されました。
Java EEプログラミング・モデルの重要な点は、メタデータ・アノテーションが導入されたことです。アノテーションを使用すると、コンテナ内でのアプリケーション・コンポーネントの動作、依存関係インジェクションのリクエスト方法などをJavaクラス自体の中で指定でき、アプリケーションの開発プロセスを簡略化できます。アノテーションは、エンタープライズ・アプリケーションの以前のバージョン(Java EE 1.4以前)で必要とされたデプロイメント記述子にかわるものです。
その焦点は、開発を容易にすることであり、Java EE 5から始まりJava EE 6でも引き継がれています。記述する必要があるコードが少なくなりました。定型コードの多くは削除され、可能なかぎりデフォルト値が使用され、アノテーションを広範に使用することによって、デプロイメント記述子の必要性が低減されています。
EJB 3.1では、プログラミングおよびパッケージ化モデルの変更が簡素化されています。前のバージョンのJavaインタフェースを使用する必要がなくなり、プレーンな従来型Javaオブジェクトに注釈付けし、EJBコンポーネントとして使用できるようになりました。EJBモジュールをWebアプリケーションの内部に直接配置できるようになり、簡素化はさらに進みました。これにより、WebコンポーネントおよびEJBコンポーネントを格納するアーカイブを作成して、それらをEARファイルに結合する必要はなくなりました。
Java EE 6では、簡略化されたWebサービスがサポートされるとともに、最新のWebサービスAPIが含まれており、サービス指向アーキテクチャ(SOA)には理想的な実装プラットフォームとなっています。
JavaServer Faces (JSF)技術とJSP Standard Tag Library (JSTL)によって、Webアプリケーションが簡単に構築できるようになっています。Java EE 6では、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で開発する場合、そのアプリケーションが最終的にどこにデプロイされるかを考慮する必要はありません。
詳細は、http://www.oracle.com/technetwork/java/javaee/tech/index-jsp-142185.html
のJava EE仕様を参照してください。
WebLogic Server Java EEアプリケーションは、WebLogic Server上で動作する以下のモジュールまたはアプリケーションのいずれかを含みます。
Webアプリケーション・モジュール - HTMLページ、サーブレット、JavaServer Pages、および関連ファイル。「Webアプリケーション・モジュール」を参照してください。
Enterprise JavaBeans (EJB)モジュール - エンティティBean、セッションBean、およびメッセージドリブンBean。「Enterprise JavaBeanモジュール」を参照してください。
コネクタ・モジュール - リソース・アダプタ。「コネクタ・モジュール」を参照してください。
エンタープライズ・アプリケーション - アプリケーションにパッケージ化されたWebアプリケーション・モジュール、EJBモジュール、リソース・アダプタ、およびWebサービス。「エンタープライズ・アプリケーション」を参照してください。
Webサービス - 「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) 3.1テクノロジは、コンポーネントベースのビジネス・アプリケーションを開発およびデプロイするためのサーバー側コンポーネント・アーキテクチャです。EJBテクノロジを使用することで、Java EE 6テクノロジに基づいて、安全でポータブルな分散トランザクション・アプリケーションを迅速かつ容易に開発できます。
EJB 3.1仕様では、プログラミングおよびパッケージ化モデルの変更が簡素化されています。前のバージョンのJavaインタフェースを使用する必要がなくなり、プレーンな従来型Javaオブジェクトに注釈付けし、EJBコンポーネントとして使用できるようになりました。EJBモジュールをWebアプリケーションの内部に直接配置できるようになり、簡素化はさらに進みました。これにより、WebコンポーネントおよびEJBコンポーネントを格納するアーカイブを作成して、それらをEARファイルに結合する必要はなくなりました。
WebLogic ServerでEJBを使用する方法については、次を参照してください。
EJB 3.1のすべての新機能については、『Oracle WebLogic Serverの新機能』の「Enterprise Java Beans (EJB)」を参照してください。
基本的なEJBの概念およびコンポーネントについては、『Oracle WebLogic Serverの紹介』の「Enterprise Java Beans (EJB)」を参照してください。
WebLogic Serverでの3.1 EJBのプログラム作成、パッケージ化およびデプロイ手順については、『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』を参照してください。
分割されたディレクトリ環境でWebLogic Server EJBを編成およびビルドする手順については、『Oracle WebLogic Serverアプリケーションの開発』を参照してください。
2.x EJBのプログラム作成およびパッケージ化の詳細は、『Oracle WebLogic Server Enterprise JavaBeansバージョン2.1のプログラミング』を参照してください。
エンタープライズBeanの利点、エンタープライズBeanの種類、ライフサイクルなどのEJBの概念を学習するには、次のWebサイトを参照してください。
Enterprise JavaBeans 3.1仕様(JSR-318)(http://jcp.org/en/jsr/summary?id=318
)
Java EE 6チュートリアル(http://download.oracle.com/javaee/6/tutorial/doc/bnblr.html
)の「エンタープライズBeans」の章
Java EE 6プラットフォームの概要: パート3 (EJB Technology, Even Easier to Use)(http://www.oracle.com/technetwork/articles/javaee/javaee6overview-part3-139660.html#ejbeasy
)
コネクタ(別称リソース・アダプタ)には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 6.0アノテーション機能が使用されます(http://download.oracle.com/javaee/6/api/
を参照)。第8章「Java EEアノテーションと依存関係インジェクションの使用」を参照してください。
WebLogic Server固有の拡張機能が含まれているアプリケーションの場合は、さらにweblogic-application.xml
ファイルでも定義されます。クライアント・モジュールを含むエンタープライズ・アプリケーションには、client-application.xml
デプロイメント記述子とWebLogic実行時クライアント・アプリケーション・デプロイメント記述子も備わっています。付録A「エンタープライズ・アプリケーションのデプロイメント記述子の要素」を参照してください。
本番用と開発用の両方の場合において、エンタープライズ・アプリケーションの一部として、スタンドアロンのWebアプリケーション、EJBおよびリソース・アダプタもパッケージ化およびデプロイすることをお薦めします。それにより、アプリケーション開発を大幅に容易にするOracleの分割開発ディレクトリ構造を使用できるようになります。第4章「分割開発ディレクトリ環境の作成」を参照してください。
エンタープライズ・アプリケーションは、Webアプリケーション・モジュール、EJBモジュール、およびリソース・アダプタで構成されています。これは次のようにパッケージ化できます。
開発が目的の場合は、WebLogic分割開発ディレクトリ構造をお薦めします。単一のアーカイブEARファイルまたは展開されたEARディレクトリ構造ではなく、分割開発ディレクトリではソース・ファイルと出力ファイルを分離する2つの並列ディレクトリが存在します。このディレクトリ構造は、単一のWebLogic Serverインスタンスでの開発用に最適化されています。第4章「分割開発ディレクトリ環境の作成」を参照してください。Oracleで提供されるwlpackage
Antタスクを使用すると、JARユーティリティを使用することなくEARを作成できます。これは分割開発ディレクトリ構造のみを対象としています。「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ベース・アプリケーションのモジュールとして共有され、使用されます。これらのサービスは一般的に、カスタマ・リレーションシップ・マネージメント・システム、注文処理システムなどの既存のバックエンド・アプリケーションと連携します。Webサービスは別々のコンピュータ上に常駐でき、多様なテクノロジを使用して実装できますが、HTTPなどの標準のWebプロトコルを使用してパッケージ化されトランスポートされます。そのため、Web上のどのようなユーザーでも簡単にアクセスできます。
Webサービスは、最低限、次のモジュールから構成されています。
Web上のサーバーによってホストされるWebサービス実装。WebLogic Webサービスは、WebLogic Serverによってホストされます。Webサービス・モジュールは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構成ファイルに構成されます。
アプリケーション用にインストゥルメンテーションを構成する詳細な手順については、「アプリケーション・スコープのインストゥルメンテーションの構成」を参照してください。
WebLogic Serverでは、外部診断記述子を使用できるため、診断記述子をインポートしていないアプリケーションに診断機能を統合することも可能です。この機能では、デプロイメント・ビュー、およびアプリケーションまたはモジュールのデプロイメントがサポートされ、デプロイメント・プラン(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
に配置します。
Bean Validation仕様(JSR 316)では、JavaBeansコンポーネントでデータを検証するためのメタデータ・モデルとAPIを定義しています。サーバーとJava EE 6クライアントの両方でサポートされるため、ブラウザやサーバー・サイドなど複数のレイヤーにデータ検証を配布するかわりに、1箇所で検証制約を定義して、それを様々なレイヤーで共有することができます。また、Bean検証の目的は、Beanを検証することだけではありません。実際には任意のJavaオブジェクトの検証にも使用できます。
Bean検証とJNDI
Java EE 6仕様で規定されている場合、JNDIを使用して、java:comp/Validator
およびjava:comp/ValidatorFactory
という名前でデフォルトのValidator
とValidatorFactory
が配置されます。これら2つのアーティファクトは、スコープ内の検証ディスクリプタを反映しています。
Bean検証構成
Bean検証は、XMLディスクリプタまたはアノテーションを使用して構成できます。
ディスクリプタ:
ディスクリプタ要素は、対応するアノテーションを上書きします。
Weblogic Serverでは、モジュールごとに1つのディスクリプタを使用できます。このため、1つのアプリケーションで複数の検証ディスクリプタを使用することはできますが、各モジュール・スコープでは1つしか使用できません。
検証ディスクリプタは、validation.xml
という名前でMETA-INF
ディレクトリにパッケージされます。ただし、WebモジュールではディスクリプタはWEB-INF
ディレクトリにパッケージされます。
アノテーション:
デフォルトのValidator
およびValidatorFactory
は、@Resource
アノテーションを使用してリクエストされます。ただし、このアノテーションですべてのソース・ファイルがスキャンされるわけではありません。
WebLogic Connectorは、Bean検証を内部的に使用してコネクタ・ディスクリプタを検証します。
Bean検証を構成すると、特定のコンテナ用の標準的な一連のコンテナ管理クラスがスキャンされます。たとえば、EJBの場合、Beanおよびインターセプタ・クラスがスキャンされます。Webアプリケーション・クラスおよびマネージドBeanでも、Validator
およびValidatorFactories
の挿入がサポートされます。
Bean検証をサポートするクラスの詳細は、関連するコンポーネントの仕様に記載されている、依存性の挿入をサポートするクラスのリストを参照してください。
デプロイメント構成は、特定のWebLogic Serverドメインにエンタープライズ・アプリケーションをデプロイするために必要となるデプロイメント記述子の値を定義するプロセスです。アプリケーションまたはモジュールに関するデプロイメント構成は、Java EEデプロイメント記述子、WebLogic Server記述子およびWebLogic Serverデプロイメント・プランの3種類のXMLドキュメントに格納されます。この項では、Java EEおよびWebLogic固有のデプロイメント記述子について説明します。デプロイメント・プランについては、「デプロイメント・プラン」を参照してください。
Java EEプログラミング・モデルでは、EJB、サーブレット、WebアプリケーションおよびJSPなどのWebコンテナにJDK 6.0アノテーション機能が使用されます(http://download.oracle.com/javaee/6/api/
を参照)。アノテーションを使用すると、コンテナ内でのコンポーネントの動作、依存関係インジェクションのリクエスト方法などをJavaクラス自体の中で指定でき、アプリケーションの開発プロセスを簡略化できます。アノテーションは、以前のバージョンのWebアプリケーション(2.4以前)、エンタープライズ・アプリケーション(1.4以前)、およびEnterprise JavaBeans (2.x以前)で必要だったデプロイメント記述子にかわるものです。第8章「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固有のすべてのデプロイメント記述子で共有される要素を記述する 最新のスキーマ情報は、 |
表1-1 Java EEとWebLogicのデプロイメント記述子
モジュールまたはアプリケーション | スコープ | デプロイメント記述子 |
---|---|---|
Webアプリケーション |
Java EE |
スキーマ: 第9章「Contexts and Dependency Injection for the Java EE Platformの使用方法」を参照してください。 |
WebLogic |
weblogic.xml スキーマ: 『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』のweblogic.xmlデプロイメント記述子の要素に関する項を参照してください。 |
|
エンタープライズBean 3.0 |
Java EE |
ejb-jar.xml
スキーマ: 第9章「Contexts and Dependency Injection for the Java EE Platformの使用方法」を参照してください。 |
WebLogic |
weblogic-ejb-jar.xml スキーマ: weblogic-rdbms-jar.xml スキーマ: persistence-configuration.xml スキーマ: 『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』を参照してください。 |
|
エンタープライズBean 2.1 |
Java EE |
ejb-jar.xml
|
WebLogic |
weblogic-ejb-jar.xml スキーマ: 『Oracle WebLogic Server Enterprise JavaBeansバージョン2.1のプログラミング』のweblogic-ejb-jar.xmlデプロイメント記述子に関する項を参照してください。
スキーマ: 『Oracle WebLogic Server Enterprise JavaBeansバージョン2.1のプログラミング』の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
スキーマ: 第9章「Contexts and Dependency Injection for the Java EE Platformの使用方法」を参照してください。 |
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
スキーマ: 第9章「Contexts and Dependency Injection for the Java EE Platformの使用方法」を参照してください。 |
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 Enterprise JavaBeansバージョン2.1のプログラミング』の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
コマンド・オプションを説明します。
オプション | 説明 |
---|---|
|
記述子が作成されるディレクトリを指定します。 |
-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のバージョンにソフトウェアが対応しているかどうかを確認してください。 |