1 WebLogic Serverアプリケーション開発の概要
この章の内容は次のとおりです。
- WebLogic ServerとJava EEプラットフォーム
WebLogic Server Java EEアプリケーションは、標準化され、モジュール化されたコンポーネントに基づいています。WebLogic Serverでは、これらのモジュール用にあらゆるサービスが用意され、細かなアプリケーションの動作を、プログラミングを必要とせずに自動的に処理します。Java EEでは、モジュールの動作とパッケージ化が汎用的で移植性の高い方法で定義されています。このため、実行時構成はモジュールをアプリケーション・サーバーにデプロイするときに行います。 - Java EEアプリケーションとモジュールの概要
WebLogic Server Java EEアプリケーションは、次に示すWebLogic Server上で動作するモジュールまたはアプリケーション、つまりWebアプリケーション・モジュール、Enterprise JavaBeans (EJB)モジュール、コネクタ・モジュール、エンタープライズ・アプリケーションまたはWebサービスのいずれか1つを含みます。 - Webアプリケーション・モジュール
WebLogic Server上のWebアプリケーションには必須のファイルと、通常、オプションのファイルがそれぞれいくつか含まれます。 - Enterprise JavaBeanモジュール
Enterprise JavaBeans (EJB)テクノロジは、コンポーネントベースのビジネス・アプリケーションを開発およびデプロイするためのサーバー側コンポーネント・アーキテクチャです。EJBテクノロジを使用することで、Java EE 8テクノロジに基づいて、安全でポータブルな分散トランザクション・アプリケーションを迅速かつ容易に開発できます。 - コネクタ・モジュール
コネクタ(別称リソース・アダプタ)にはJava、および必要に応じてエンタープライズ情報システム(EIS)と対話するために必要なネイティブ・モジュールが含まれています。WebLogic Server環境にデプロイされたリソース・アダプタを使用すると、Java EEアプリケーションでリモートEISにアクセスできるようになります。WebLogic Serverアプリケーションの開発者は、HTTPサーブレット、JavaServer Pages (JSP)、Enterprise JavaBeans (EJB)、およびその他のAPIにより、EISのデータとビジネス・ロジックを使用する統合アプリケーションを開発できます。 - エンタープライズ・アプリケーション
エンタープライズ・アプリケーションは、1つまたは複数のWebアプリケーション・モジュール、EJBモジュール、およびリソース・アダプタで構成されています。また、クライアント・アプリケーションが含まれていることもあります。 - WebLogic Webサービス
Webサービスは、分散型Webベース・アプリケーションのモジュールとして共有され、使用されます。これらのサービスは一般的に、カスタマ・リレーションシップ・マネージメント・システム、注文処理システムなどの既存のバックエンド・アプリケーションと連携します。Webサービスは別々のコンピュータ上に常駐でき、多様なテクノロジを使用して実装できますが、HTTPなどの標準のWebプロトコルを使用してパッケージ化されトランスポートされます。そのため、Web上のどのようなユーザーでも簡単にアクセスできます。 - JMSおよびJDBCモジュール
JMSおよびJDBCの構成は、それぞれweblogic-jms.xsd
およびjdbc-data-source.xsd
スキーマに準拠するXMLファイルによって定義されたモジュールとして格納されます。これらのモジュールは、標準のJava EEモジュールに類似しています。管理者はグローバルなシステム・リソースとして、Java EEアプリケーションと共にパッケージ化されるモジュール(パッケージ化されたリソース)として、またはグローバルに使用可能なスタンドアロンのモジュールとして、JMSおよびJDBCモジュールを作成したり管理したりできます。 - WebLogic診断フレームワーク・モジュール
WebLogic診断フレームワーク(WLDF)では、WebLogic Serverインスタンスおよびサーバー・インスタンスにデプロイされたアプリケーションから診断データを生成、収集、解析、永続化できます。 - Coherence Grid Archive (GAR)モジュール
Coherence GARモジュールは、アプリケーションの可用性、スケーラビリティおよびパフォーマンスを向上させることができる、分散されたメモリー内キャッシングおよびデータ・グリッド・コンピューティングを提供します。GARモジュールは、スタンドアロン・モジュールとして、およびJava EEアプリケーションとともにパッケージ化されるモジュール(パッケージ化されたリソース)としてデプロイされます。GARモジュールは、グローバルに使用可能にすることもできます。 - Beanの検証
Bean Validation仕様(JSR 380)では、JavaBeansコンポーネントでデータを検証するためのメタデータ・モデルとAPIを定義しています。サーバーとJava EE 8クライアントの両方でサポートされるため、ブラウザやサーバー・サイドなど複数のレイヤーにデータ検証を配布するかわりに、1箇所で検証制約を定義して、それを様々なレイヤーで共有することができます。 - XMLデプロイメント記述子
デプロイメント構成は、特定のWebLogic Serverドメインにエンタープライズ・アプリケーションをデプロイするために必要となるデプロイメント記述子の値を定義するプロセスです。アプリケーションまたはモジュールに関するデプロイメント構成は、Java EEデプロイメント記述子、WebLogic Server記述子およびWebLogic Serverデプロイメント・プランの3種類のXMLドキュメントに格納されます。 - デプロイメント・プラン
デプロイメント・プランは、特定のWebLogic Server環境のためのアプリケーションのWebLogic Serverデプロイメント構成を定義する、XMLドキュメントです。デプロイメント・プランは、アプリケーションのアーカイブ・ファイルの外部にあり、アプリケーションの既存のWebLogic Serverデプロイメント記述子に格納されているデプロイメント・プロパティに対して変更を適用することができます。 - 開発ツール
WebLogic Serverアプリケーションを開発するには、Java APIリファレンスおよびwls-api.jar
ファイル、ソース・コード・エディタまたはIDE、データベース・システムおよびJDBCドライバ、Webブラウザなど、様々なツールが必要です。また、Apache Antなどのサードパーティ・ツールも必要です。
WebLogic ServerとJava EEプラットフォーム
WebLogic Server Java EEアプリケーションは、標準化され、モジュール化されたコンポーネントに基づいています。WebLogic Serverでは、これらのモジュール用にあらゆるサービスが用意され、細かなアプリケーションの動作を、プログラミングを必要とせずに自動的に処理します。Java EEでは、モジュールの動作とパッケージ化が汎用的で移植性の高い方法で定義されています。このため、実行時構成はモジュールをアプリケーション・サーバーにデプロイするときに行います。
WebLogic Serverは、Java Platform, Enterprise Edition (Java EE)バージョン8技術を実装しています(http://www.oracle.com/technetwork/java/javaee/overview/index.html
を参照)。Java EEは、Javaプログラミング言語に基づいた多層エンタープライズ・アプリケーションを開発するための標準プラットフォームです。Java EEを構成する技術は、いくつかのソフトウェア・ベンダーによって共同開発されました。
Java EE 8プラットフォームのハイライト
Java EE 8は、本日のアプリケーションに必要なAPIモデルおよびプログラミング・モデルの改善を続け、コミュニティによって要求される機能の追加を行います。このリリースでは、多くの業界標準のサポートが最新化され、エンタープライズ対応APIの簡略化が継続されます。Java EE 8プラットフォームの主な目的は、クラウドおよびマイクロサービス環境用のエンタープライズJavaのインフラストラクチャを最新化し、HTML5およびHTTP/2のサポートを強調し、新しいコンテキストおよび依存関係インジェクション機能により開発を簡略化し、プラットフォームのセキュリティおよび信頼性をさらに強化することです。
WebLogic Serverでサポートされているすべての新しいJava EE 8の機能の詳細は、『Oracle WebLogic Serverの新機能』のJava EE 8サポートに関する項を参照してください。
WebLogic ServerおよびJava EEアプリケーション
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仕様(https://www.oracle.com/java/technologies/java-ee-glance.html#javaee8
)を参照してください。
親トピック: WebLogic Serverアプリケーション開発の概要
Java EEアプリケーションとモジュールの概要
WebLogic Server Java EEアプリケーションは、次に示すWebLogic Server上で動作するモジュールまたはアプリケーション、つまりWebアプリケーション・モジュール、Enterprise JavaBeans (EJB)モジュール、コネクタ・モジュール、エンタープライズ・アプリケーションまたはWebサービスのいずれか1つを含みます。
-
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診断フレームワーク・モジュール」を参照してください。
-
Coherence Grid Archive (GAR) モジュール - 「Coherence Grid Archive (GAR)モジュール」を参照してください
親トピック: WebLogic Serverアプリケーション開発の概要
Webアプリケーション・モジュール
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ページを生成するために使用します。
親トピック: Webアプリケーション・モジュール
JavaServer Pages
JavaServer Pages (JSP)は、JavaコードをWebページに埋め込むことができる拡張HTMLで記述されたWebページです。JSPでは、HTMLに似たタグを使用して、タグ・ライブラリと呼ばれるカスタムJavaクラスを呼び出すことができます。appc
コンパイラは、JSPをコンパイルし、サーブレットに変換します。WebLogic Serverでは、サーブレット・クラス・ファイルが存在しないか、またはJSPソース・ファイルよりもタイムスタンプが古い場合にJSPが自動的にコンパイルされます。「wlappcを使用したモジュールおよびアプリケーションのビルド」を参照してください。
サーバーでのコンパイルを避けるために、あらかじめJSPをコンパイルし、サーブレット・クラスをWebアプリケーション(WAR)ファイルにパッケージ化することもできます。サーブレットおよびJSPでは、Webアプリケーションと共にデプロイするヘルパー・クラスがさらに必要な場合があります。
親トピック: Webアプリケーション・モジュール
Enterprise JavaBeanモジュール
Enterprise JavaBeans (EJB) テクノロジは、コンポーネントベースのビジネス・アプリケーションを開発およびデプロイするためのサーバー側コンポーネント・アーキテクチャです。EJBテクノロジを使用することで、Java EE 8テクノロジに基づいて、安全でポータブルな分散トランザクション・アプリケーションを迅速かつ容易に開発できます。
EJB 3.2仕様では、プログラミングおよびパッケージ化モデルの変更が簡素化されています。前のバージョンのJavaインタフェースを使用する必要がなくなり、プレーンな従来型Javaオブジェクトに注釈付けし、EJBコンポーネントとして使用できるようになりました。EJBモジュールをWebアプリケーションの内部に直接配置できるようになり、簡素化はさらに進みました。これにより、WebコンポーネントおよびEJBコンポーネントを格納するアーカイブを作成して、それらをEARファイルに結合する必要はなくなりました。
WebLogic ServerでのEJBドキュメント
WebLogic ServerでEJBを使用する方法については、次を参照してください。
-
EJBのすべての新機能については、『Oracle WebLogic Server Enterprise JavaBeansの開発』の「EJBでの新しい機能と変更」を参照してください。
-
基本的なEJBの概念とコンポーネントの詳細は、『Oracle WebLogic Serverの理解』の「Enterprise Java Beans (EJB)」を参照してください。
-
WebLogic Serverでの3.2 EJBのプログラミング、パッケージ化およびデプロイについては、『Oracle WebLogic Server Enterprise JavaBeansの開発』を参照してください。
-
分割されたディレクトリ環境でWebLogic Server EJBを編成およびビルドする手順については、分割開発ディレクトリ環境の作成を参照してください。
-
2.x EJBのプログラム作成およびパッケージ化の詳細は、『Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発』を参照してください。
親トピック: Enterprise JavaBeanモジュール
EJBに関する追加情報
エンタープライズBeanの利点、エンタープライズBeanの種類、ライフサイクルなどのEJBの概念を学習するには、次のWebサイトを参照してください。
-
EJB 3.2仕様(JSR-345)(
http://jcp.org/en/jsr/summary?id=345
) -
Java EE 8チュートリアル(
https://javaee.github.io/tutorial/partentbeans.html
)のエンタープライズBeanの章 -
Java EE 8プラットフォーム(
https://www.oracle.com/java/technologies/java-ee-glance.html#javaee8
)
親トピック: Enterprise JavaBeanモジュール
コネクタ・モジュール
コネクタ(別称リソース・アダプタ)には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リソース・アダプタの開発』を参照してください。
親トピック: WebLogic Serverアプリケーション開発の概要
エンタープライズ・アプリケーション
エンタープライズ・アプリケーションは、1つまたは複数のWebアプリケーション・モジュール、EJBモジュール、およびリソース・アダプタで構成されています。また、クライアント・アプリケーションが含まれていることもあります。
エンタープライズ・アプリケーションは必要に応じて、エンタープライズ・アプリケーションの標準Java EEデプロイメント記述子であるapplication.xml
ファイルによって定義できます。
Java EEプログラミング・モデル
Java EEプログラミング・モデルの重要な点は、メタデータ・アノテーションが導入されたことです。アノテーションを使用すると、コンテナ内でのアプリケーションの動作、依存関係インジェクションのリクエスト方法などをJavaクラス自体の中で指定でき、アプリケーションの開発プロセスを簡略化できます。アノテーションは、エンタープライズ・アプリケーションの以前のバージョン(1.4以前)で必要だったデプロイメント記述子にかわるものです。
Java EEアノテーションの使用により、標準のapplication.xml
およびweb.xml
デプロイメント記述子は省略可能になりました。Java EEプログラミング・モデルでは、EJB、サーブレット、Webアプリケーション、JSPなどのWebコンテナに対して、JDKアノテーション機能(https://javaee.github.io/javaee-spec/javadocs/
を参照)を使用しています。Java EEアノテーションと依存関係インジェクションの使用を参照してください。
WebLogic Server固有の拡張機能が含まれているアプリケーションの場合は、さらにweblogic-application.xml
ファイルでも定義されます。クライアント・モジュールを含むエンタープライズ・アプリケーションには、client-application.xml
デプロイメント記述子とWebLogic実行時クライアント・アプリケーション・デプロイメント記述子も備わっています。エンタープライズ・アプリケーションのデプロイメント記述子の要素を参照してください。
親トピック: エンタープライズ・アプリケーション
パッケージ化とデプロイメントの概要
本番用と開発用の両方の場合において、エンタープライズ・アプリケーションの一部として、スタンドアロンのWebアプリケーション、EJBおよびリソース・アダプタもパッケージ化およびデプロイすることをお薦めします。それにより、アプリケーション開発を大幅に容易にするOracleの分割開発ディレクトリ構造を使用できるようになります。分割開発ディレクトリ環境の作成を参照してください。
エンタープライズ・アプリケーションは、Webアプリケーション・モジュール、EJBモジュール、およびリソース・アダプタで構成されています。これは次のようにパッケージ化できます。
-
開発が目的の場合は、WebLogic分割開発ディレクトリ構造をお薦めします。単一のアーカイブEARファイルまたは展開されたEARディレクトリ構造ではなく、分割開発ディレクトリではソース・ファイルと出力ファイルを分離する2つの並列ディレクトリが存在します。このディレクトリ構造は、単一のWebLogic Serverインスタンスでの開発用に最適化されています。分割開発ディレクトリ環境の作成を参照してください。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オブジェクト)クラスで定義されるアノテーションから、モジュールを推測します。エンタープライズ・アプリケーションのデプロイメント記述子の要素を参照してください。
親トピック: エンタープライズ・アプリケーション
WebLogic Webサービス
Webサービスは、分散型Webベース・アプリケーションのモジュールとして共有され、使用されます。これらのサービスは一般的に、カスタマ・リレーションシップ・マネージメント・システム、注文処理システムなどの既存のバックエンド・アプリケーションと連携します。Webサービスは別々のコンピュータ上に常駐でき、多様なテクノロジを使用して実装できますが、HTTPなどの標準のWebプロトコルを使用してパッケージ化されトランスポートされます。そのため、Web上のどのようなユーザーでも簡単にアクセスできます。
Webサービスは、最低限、次のモジュールから構成されています。
-
Web上のサーバーによってホストされるWebサービス実装。WebLogic JAX-WS Webサービスは、WebLogic Serverによってホストされます。Webサービス・モジュールはJavaクラス、あるいはWebサービスを実装するEJBのどちらかを含む場合があります。Webサービスは、実装に応じて、Webアプリケーション・アーカイブ(WAR)またはEJBモジュール(JAR)のどちらかとしてパッケージ化されます。
-
Webサービスとそのユーザー間のデータ転送とWebサービス呼出しの標準。WebLogic JAX-WS Webサービスでは、Simple Object Access Protocol (SOAP) 1.1をメッセージ・フォーマットとして使用し、HTTPを接続プロトコルとして使用します。
-
Webサービスを起動できるようにクライアントに記述するための標準。WebLogic Webサービスは、XMLベースの仕様であるWeb Services Description Language (WSDL) 1.1を使用して記述しています。
-
Webサービスを呼び出すためのクライアント用の標準 - JAX-WS。『Oracle WebLogic Server JAX-WS Webサービスの開発』を参照してください。
WebLogic Serverには、RESTful Webサービスのサポートも含まれています。RESTful Webサービスの詳細は、『Oracle WebLogic Server RESTful Webサービスの開発と保護』を参照してください。
WebLogic Webサービスおよびサポートされている標準の詳細は、『Oracle WebLogic Server WebLogic Webサービスの理解』を参照してください。
親トピック: WebLogic Serverアプリケーション開発の概要
JMSおよびJDBCモジュール
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管理者に渡します。
詳細は、次を参照してください:
親トピック: WebLogic Serverアプリケーション開発の概要
WebLogic診断フレームワーク・モジュール
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
に配置します。
親トピック: 外部診断記述子の使用
Coherence Grid Archive (GAR)モジュール
Coherence GARモジュールは、アプリケーションの可用性、スケーラビリティおよびパフォーマンスを向上させることができる、分散されたメモリー内キャッシングおよびデータ・グリッド・コンピューティングを提供します。GARモジュールは、スタンドアロン・モジュールとして、およびJava EEアプリケーションとともにパッケージ化されるモジュール(パッケージ化されたリソース)としてデプロイされます。GARモジュールは、グローバルに使用可能にすることもできます。
GARモジュールはcoherence-application.xmlデプロイメント記述子によって定義され、coherence-application.xsd
XMLスキーマに準拠する必要があります。GARには、Coherenceアプリケーションを構成するアーティファクト(Coherence構成ファイル、アプリケーション・クラス(エントリ・プロセッサ、アグリゲータ、フィルタなど)、必要な依存関係)が含まれています。
親トピック: WebLogic Serverアプリケーション開発の概要
Beanの検証
Bean Validation 仕様(JSR 380)では、JavaBeansコンポーネントでデータを検証するためのメタデータ・モデルとAPIを定義しています。サーバーとJava EE 8クライアントの両方でサポートされるため、ブラウザやサーバー・サイドなど複数のレイヤーにデータ検証を配布するかわりに、1箇所で検証制約を定義して、それを様々なレイヤーで共有することができます。
Bean検証の目的は、Beanを検証することだけではありません。実際には任意のJavaオブジェクトの検証にも使用できます。
Bean検証とJNDI
Java EE 仕様で規定されている場合、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アプリケーション開発の概要
XMLデプロイメント記述子
デプロイメント構成は、特定のWebLogic Serverドメインにエンタープライズ・アプリケーションをデプロイするために必要となるデプロイメント記述子の値を定義するプロセスです。アプリケーションまたはモジュールに関するデプロイメント構成は、Java EEデプロイメント記述子、WebLogic Server記述子およびWebLogic Serverデプロイメント・プランの3種類のXMLドキュメントに格納されます。
この項では、Java EEおよびWebLogic固有のデプロイメント記述子について説明します。デプロイメント・プランについては、「デプロイメント・プラン」を参照してください。
Java EEプログラミング・モデルでは、EJB、サーブレット、Webアプリケーション、JSPなどのWebコンテナに対してJDKアノテーション機能を採用しています。アノテーションを使用すると、コンテナ内でのコンポーネントの動作、依存関係インジェクションのリクエスト方法などをJavaクラス自体の中で指定でき、アプリケーションの開発プロセスを簡略化できます。アノテーションは、以前のバージョンのWebアプリケーション(2.4以前)、エンタープライズ・アプリケーション(1.4以前)、およびEnterprise JavaBeans (2.x以前)で必要だったデプロイメント記述子にかわるものです。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.7/weblogic-javaee.xsd
スキーマの要素も含まれています。
最新のスキーマ情報は、https://www.oracle.com/webfolder/technetwork/weblogic/wls_14.1.1.0.0.html
を参照してください。
表1-1 Java EEとWebLogicのデプロイメント記述子
モジュールまたはアプリケーションをパッケージ化する場合は、デプロイメント記述子を格納するディレクトリ(WEB-INF
またはMETA-INF
)を作成し、次にそのディレクトリ内にXMLデプロイメント記述子を作成します。
親トピック: WebLogic Serverアプリケーション開発の概要
デプロイメント記述子の自動生成
WebLogic Serverでは、デプロイメント記述子を自動生成するための様々なツールを用意しています。これらについては、これ以降の項で説明します。
親トピック: XMLデプロイメント記述子
Javaベースのコマンド・ライン・ユーティリティ
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
によって作成されます)。
親トピック: XMLデプロイメント記述子
以前のリリースのJava EEおよびWebLogic Serverのデプロイメント記述子のアップグレード
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
コマンド・オプションを説明します。
表1-2 weblogic.DDConverterコマンド・オプション
オプション | 説明 |
---|---|
|
記述子が作成されるディレクトリを指定します。 |
-help |
標準の使用方法メッセージを出力します。 |
-quiet |
エラー・メッセージを除く出力メッセージをオフにします。 |
-verbose |
デバッグで使用する追加出力をオンにします。 |
次の例では、weblogic.DDConverter
コマンドを使用して、my.ear
エンタープライズ・アプリケーションのアップグレードされたデプロイメント記述子をカレント・ディレクトリのサブディレクトリtempdir
に生成する方法を示します。
prompt> java weblogic.DDConverter -d tempdir my.ear
親トピック: XMLデプロイメント記述子
デプロイメント・プラン
デプロイメント・プランは、特定の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 Server管理コンソールは、インストールされているアプリケーションの構成プロパティが変更されると、必要に応じてデプロイメント・プランを更新または新規作成します。WebLogic Server管理コンソールを使用して、新しいデプロイメント・プランを生成したり、既存のプラン内の変数を追加またはオーバーライドできます。記述子プロパティのカテゴリ全体をエクスポートするのではなく、プラン内の個々のデプロイメント記述子プロパティを対話形式で追加または編集できるため、WebLogic Server管理コンソールには
weblogic.PlanGenerator
よりも高い柔軟性があります。
デプロイメント・プランの作成と使用方法の詳細は、次を参照してください。
親トピック: WebLogic Serverアプリケーション開発の概要
開発ツール
WebLogic Serverアプリケーションを開発するには、Java APIリファレンスおよびwls-api.jar
ファイル、ソース・コード・エディタまたはIDE、データベース・システムおよびJDBCドライバ、Webブラウザなど、様々なツールが必要です。また、Apache Antなどのサードパーティ・ツールも必要です。
この項では、WebLogic Serverアプリケーションを開発するための必須ツールや省略可能なツールについて説明します。
- Java APIリファレンスおよびwls-api.jarファイル
- Apache Ant
- ソース・コード・エディタまたはIDE
- データベース・システムとJDBCドライバ
- Webブラウザ
- サード・パーティ・ソフトウェア
親トピック: WebLogic Serverアプリケーション開発の概要
Java APIリファレンスおよびwls-api.jarファイル
Oracleには、『Oracle Fusion Middleware Oracle WebLogic Server Java APIリファレンス』が用意されています。このリファレンスには、WebLogic Server用のJava EEアプリケーションを開発する際に使用可能な、サポートされているすべてのJavaクラスが定義されています。『Oracle WebLogic Server Java APIリファレンス』を参照してください。
『Oracle WebLogic Server Java APIリファレンス』とともに、wls-api.jar
ファイルを使用して、WebLogic Server環境に合わせてJava EEアプリケーションを開発およびコンパイルすることをお薦めします。wls-api.jar
ファイルは、WebLogic Server配布のwlserver/server/lib
ディレクトリに配置されており、次の利点を提供します。
-
テストされたベスト・プラクティスに基づく、よりパフォーマンスの高いコードの開発
-
非推奨またはサポート対象外となったコード・パスの回避
wls-api.jarファイルの使用
wls-api.jar
ファイルとapi.jar
ファイルを使用すると、Oracle JDeveloperなどの統合開発環境(IDE)でJava EEアプリケーションを開発およびコンパイルすることができます。IDEには、Javaベースのアプリケーションの開発を簡略化するための一連のツールが用意されています。wls-api.jar
ファイルは、WebLogic環境に合わせてJava EEアプリケーションを開発および実行するための、クリーンで簡潔なAPI jarを提供します。
ノート:
wls-api.jar
ファイルはJava EEクラスを参照しません。Oracleではapi.jar
ファイルに、Java EE JARへのアクセスを含むマニフェスト・クラスパスを用意しています。
WLST、weblogic.Deployer
ユーティリティ、weblogic.appc
などのツールにアクセスするために、開発環境のクラスパスにweblogic.jar
ファイルを含める必要がある場合があります。
Apache Ant
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のドキュメントを参照するには、http://archive.apache.org/dist/ant/binaries/
からAntのzipファイルをダウンロードして、ドキュメントを展開します。
クロス・プラットフォーム・スクリプトをコンパイルするAntの使用、またはAntによって処理可能なXMLスクリプトを作成するクロス・プラットフォーム・スクリプトの使用については、ORACLE_HOME
/wlserver/samples/server/examples/src/examples/ejb20/basic/beanManaged/build.xml
などの任意のWebLogic Serverサンプルを参照してください。ここで、ORACLE_HOME
は、WebLogic Serverをインストールしたディレクトリを表します。WebLogic Serverサンプル・コードの詳細は、『Oracle WebLogic Serverの理解』のサンプル・アプリケーションおよびサンプル・コードに関する項を参照してください。
また、Antを使ってサンプルを構築する方法を説明したWebLogic Serverドキュメント(ORACLE_HOME
/wlserver/samples/server/examples/src/examples/examples.html
)も参照してください。
サード・パーティ・バージョンのAntの使用方法
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\Oracle_Home\wlserver
など)です。
親トピック: Apache Ant
Antのヒープ・サイズの変更
デフォルトでは、環境スクリプトは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
のスクリプトとコマンドを参照してください。
親トピック: Apache Ant
ソース・コード・エディタまたはIDE
Javaソース・ファイル、構成ファイル、HTMLまたはXMLページ、およびJavaServer Pagesの編集には、テキスト・エディタが必要です。WindowsとUNIXの行末コードの違いを適切に処理するエディタが望ましいですが、それ以外には特別な要件は何もありません。HTML/XMLページおよびJavaServer Pagesは、通常のテキスト・エディタか、またはDreamWeaverなどのWebページ・エディタで編集できます。XMLページの場合、DTD検証機能を備えたエンタープライズ・レベルのIDE、またはXMLファイルの編集をサポートするその他の開発ツールを使用できます。
親トピック: 開発ツール
データベース・システムとJDBCドライバ
データベース・システムは、ほぼすべてのWebLogic Serverアプリケーションで必要となります。標準JDBCドライバを介してアクセスできる任意のDBMSを使用できますが、WebLogic Java Message Service (JMS)などのサービスでは、Oracle、Sybase、Informix、Microsoft SQL ServerまたはIBM DB2をサポートするJDBCドライバが必要です。サポート対象のデータベース・システムとJDBCドライバについては、Oracle Technology Networkの「Oracle Fusion Middleware Supported System Configurations」ページを参照してください。
親トピック: 開発ツール
Webブラウザ
ほとんどのJava EEアプリケーションは、Webブラウザ・クライアントによって実行されるように設計されています。WebLogic ServerはHTTP 1.1仕様をサポートしており、FirefoxおよびMicrosoft Internet Explorerブラウザの現行バージョンでテストされています。
作成するアプリケーションの条件を書き出す場合、どのWebブラウザ・バージョンをサポートするかに留意してください。テスト・プランには、サポートされるバージョンごとのテスト計画を含めます。バージョン番号とブラウザ構成は明確に指定します。作成するアプリケーションはセキュア・ソケット・レイヤー(SSL)プロトコルをサポートしますか。ブラウザの代替セキュリティ設定をテストして、サポートしているセキュリティをユーザーに通知できるようにします。
アプリケーションがアプレットを使用する場合、様々なブラウザに埋め込まれているJVMには違いがあるため、サポートするブラウザの構成をテストすることが特に重要です。解決策の1つは、Javaプラグインをインストールするようユーザーに指示して、すべてのユーザーが同じJavaランタイム・バージョンを持つようにすることです。
親トピック: 開発ツール
サード・パーティ・ソフトウェア
サード・パーティのソフトウェア製品を使用して、WebLogic Server開発環境を強化することができます。「WebLogic開発者向けツール・リソース」では、アプリケーション・サーバーをサポートする製品の開発者向けツールの情報が提供されます。
ノート:
ソフトウェア・ベンダーに問い合わせて、使用しているプラットフォームとWebLogic Serverのバージョンにソフトウェアが対応しているかどうかを確認してください。
親トピック: 開発ツール