この章では、OC4JにデプロイするためにJ2EEに準拠するアプリケーションとモジュールをパッケージする際のガイドラインについて説明します。次の項が含まれます。
作成したものをOC4Jに正しくデプロイするには、J2EEアプリケーションとモジュールを適切にパッケージングすることが重要です。J2EE 1.4に完全に準拠するコンテナであるOC4Jは、複数のJ2EEアプリケーションの異なるモジュールへのパッケージングをサポートし、このようにして作成したモジュールは一緒に、または個別にデプロイできます。モジュールは2つの種類に分類できます。
完全なJ2EEアプリケーションまたはWebアプリケーションを含むアプリケーション・モジュール
Enterprise JavaBean(EJB)、アプリケーション・クライアントまたはリソース・アダプタを含むスタンドアロン・モジュール
完全なJ2EEアプリケーションは、末尾が拡張子.ear
の標準Javaアーカイブ(JAR)ファイルであるエンタープライズ・アーカイブ(EAR)ファイルとして、編成および提供されます。ファイルにはJ2EEアプリケーション・ディスクリプタが含まれており、オプションでOC4J固有のディスクリプタを含めることができます。JDK 5.0ではlib
ディレクトリを含めることができます。EARは、基本的に次のJ2EEモジュールを1つ以上含むメタコンテナです。
Webアプリケーション・モジュールは、Webアプリケーション・アーカイブ(WAR)ファイルとしてパッケージされます。WARは、通常、サーブレット・クラス・ファイル、JSPファイル、すべてのサポート・クラス・ファイル(リソース・バンドルなど)、イメージ、およびWebアプリケーションを構成するHTMLファイルを含みます。J2EE Webデプロイメント・ディスクリプタとオプションのOC4J固有のWebディスクリプタも含まれます。
Webサービスはデプロイ用にWARファイルにパッケージされます。
エンタープライズBeanに対するクラス・ファイルを含むEJBモジュールは、JARファイルとしてパッケージされます。EJB JARは、EJBのデプロイメント・ディスクリプタも含みます。
すべてのJavaインタフェース、クラス、ネイティブ・ライブラリおよびリソース・アダプタのデプロイメント・ディスクリプタを含むリソース・アダプタ・モジュールは、拡張子が.rar
(Resource Adapter Archive)のJARファイルとしてパッケージされます。
クラス・ファイルおよびアプリケーション・クライアントのデプロイメント・ディスクリプタを含むアプリケーション・クライアント・モジュールは、JARファイルとしてパッケージされます。
前述のモジュールはいずれも、完全なJ2EEアプリケーションの一部としてEARファイル内にパッケージする必要はなく、個別にOC4Jにデプロイできます。これにより、アプリケーション全体を再デプロイしなくても、更新したモジュールのみをデプロイできます。
注意: Webサービスは、WARファイルとして、またはステートレス・セッションBeanを含むEJB JARファイルとしてパッケージできます。 |
作成したものをOC4Jに正しくデプロイするには、J2EEアプリケーションとモジュールを適切にパッケージングすることが重要です。次の項で、これらのファイルの構造について説明します。
ここでは、標準J2EEアプリケーション構造について説明します。この構造は、必要に応じて、開発およびパッケージングの構造として使用できます。
また、オプションのOC4J固有のディスクリプタ(orion-application.xml
など)の相対的な位置も示します。前述のとおり、デプロイにOC4J固有のディスクリプタを含めない場合は、OC4Jにより、J2EEアプリケーションのデプロイ時にこのディスクリプタが生成されます。このとき、対応するOC4J構成ファイルおよびJ2EEディスクリプタの値がデフォルトとして継承されます。
J2EEApplicationName.ear WAR file(s) JAR file(s) RAR file(s) lib/ JAR and ZIP files for shared classes META-INF/ MANIFEST.MF application.xml (standard J2EE application descriptor) orion-application.xml (optional OC4J application descriptor) WebModuleName.war static HTML files, such as index.html JSP pages images WEB-INF/ web.xml (standard J2EE Web descriptor) orion-web.xml (optional OC4J Web descriptor) classes/ servlet classes, according to package lib/ JAR and ZIP files for shared classes EJBModuleName.jar EJB classes, according to package META-INF/ ejb-jar.xml (standard J2EE descriptor) orion-ejb-jar.xml (optional OC4J descriptor) WebServiceWebModuleName.war WEB-INF/ web.xml (standard J2EE Web descriptor) orion-web.xml (optional OC4J Web descriptor) webservices.xml (standard J2EE descriptor) oracle-webservices.xml (optional OC4J descriptor) mapping_file.xml wsdl/ wsdl_file.wsdl classes/ class files lib/ JAR and ZIP files for dependency classes ApplicationClientModuleName.jar client classes, according to package META-INF/ application-client.xml (standard J2EE descriptor) orion-application-client.xml (optional OC4J descriptor) ResourceAdapterModuleName.rar JAR files for required classes required static files or other files META-INF/ ra.xml (standard J2EE descriptor) orion-ra.xml (optional OC4J descriptor)
J2EEでは、WARファイルは通常、EARファイル内に組み込まれます。前項の例では、EARファイルJ2EEAppName
.ear
には、トップレベルの/META-INF
ディレクトリとともに、WebモジュールのWARファイル、EJBモジュールのJARファイル、クライアント・アプリケーションのJARファイルおよびリソース・アダプタのRARファイル(各ファイルは、必要に応じてゼロ個以上)が含まれています。
META-INF/ application.xml orion-application.xml (optional) EJBModuleName.jar WebModuleName.war ClientModuleName.jar ResourceAdapterModuleName.rar
次の例は、単純なWebアプリケーションのアーカイブ・ファイルの構造を示しています。EARファイルには、単一のサーブレットを含むWARファイルが組み込まれています。
注意: このマニュアルでは、ユーザーにJ2EEの開発経験があり、EARおよびWARファイルを作成する手段として、JARユーティリティを直接使用する方法、Oracle JDeveloperなどのIDEを介する方法、またはAnt ユーティリティとbuild.xml ファイルを使用する方法のいずれかが使用可能であることを前提としています。OC4J Antタスクの使用方法の詳細は、『Oracle Containers for J2EEデプロイメント・ガイド』を参照してください。Ant の詳細は、次のWebサイトを参照してください。
|
アプリケーションまたはモジュールをJ2EEコンテナにデプロイするために必要な初期構成データは、デプロイメント・ディスクリプタと呼ばれるXML形式の構成ファイルに指定されています。デプロイメント・ディスクリプタの書式は、Document Type Definition(DTD)ドキュメントまたはXML Schema Definition(XSD)で定義されています。
デプロイ可能なモジュールごとに、J2EE準拠サーバーへのデプロイに必要な標準のJ2EEデプロイメント・ディスクリプタが存在します。さらに、OC4JなどのJ2EEコンテナは、標準のJ2EEデプロイメント・ディスクリプタを拡張する複数のベンダー固有デプロイメント・ディスクリプタを利用します。たとえば、OC4J固有のorion-application.xml
ディスクリプタは、J2EE標準のapplication.xml
ディスクリプタをOC4J固有の構成データで拡張します。
適切なOC4J固有のディスクリプタを作成し、デプロイ可能なアーカイブでパッケージできます。ただし、これは必須ではありません。OC4Jは、デプロイ時にパッケージされたディスクリプタが見つからない場合、対応するOC4J構成ファイルおよびJ2EEディスクリプタの値をデフォルトとして使用して、デプロイ・プランを自動的に生成します。デプロイ・プランの詳細は、『Oracle Containers for J2EEデプロイメント・ガイド』を参照してください。
表7-1では、J2EEの標準のデプロイメント・ディスクリプタと、それに対応するOC4Jの拡張について説明します。OC4J固有の各ディスクリプタが記述されているXML Schema Definition(XSD)ファイルも示します。最新のOracle XSDについては次のリンクを参照してください。
http://www.oracle.com/technology/oracleas/schema/index.html
OC4Jで、様々なOC4Jディスクリプタ・ファイルに存在するOC4J固有の構成データをすべて統合するデプロイ・プランを作成する機能が提供されるようになった点に注意してください。デプロイ・プラン・エディタの機能を使用して、デプロイ時に構成データを設定または編集できます。デプロイ・プランに関する作業の詳細は、『Oracle Containers for J2EEデプロイメント・ガイド』を参照してください。
表7-1 J2EEとOC4Jのデプロイメント・ディスクリプタ
J2EE標準ディスクリプタ | OC4J固有ディスクリプタ |
---|---|
EJBやWebモジュールなどのJ2EEアプリケーションのコンポーネントを指定します。アプリケーションの追加構成も指定できます。このディスクリプタは、アプリケーションのEARファイルの |
一般に、セキュリティ・ロールのマッピング、データソースの定義、JNDIネームスペース・アクセスおよび共有ライブラリの置換など、OC4J固有の構成を定義します。J2EEの このファイルの形式は、 |
静的ページ、サーブレットおよびJSPページなど、J2EEのWebコンポーネントのセットを指定および構成します。Webコンポーネントが呼び出す可能性のあるEJBなどの他のコンポーネントを指定および構成することもできます。各Webコンポーネントは互いに組み合されて独立したWebアプリケーションを形成し、スタンドアロンのWARファイルにデプロイされます。 |
開発者モードやJSPの自動再ロードなどのOC4Jの機能を有効にするかどうかなど、アプリケーション・レベルのOC4J固有の構成データで、標準のJ2EEディスクリプタを拡張します。 このファイルの形式は、 |
JAR内のEnterprise JavaBeanの具体的な構造的特性と依存性を定義し、Beanが想定しているコンテナとの対話方法についてEJBコンテナに指示します。 EJB 3.0を使用している場合、このデプロイメント・ディスクリプタ・ファイルはオプションであり、かわりに注釈を使用できます。このリリースでは、OC4JはセッションBeanおよびメッセージドリブンBeanのすべてのオプションで、EJB 3.0の注釈と |
EJBプールの設定、タイムアウトと再試行の設定、JNDIマッピングおよびfinderメソッドの仕様など、アーカイブ内のすべてのEJBに対するOC4J固有の構成データを定義します。TopLink永続性マネージャに対するプロパティも含みます。 このファイルの形式は、 |
エンティティを使用するEJB 3.0アプリケーションで、1つ以上の永続性ユニットを定義します。このリリースでは、EJB JAR、WARまたはEARに |
|
アーカイブにパッケージされているJ2EEアプリケーション・クライアントによって使用されるEJBモジュールと他のリソースを記述します。 |
EJBのホーム・インタフェースに対するJNDIマッピング、またはデータソース、JMSキュー、メール・セッションなどの外部リソースに対するJNDIマッピングなど、OC4Jのデプロイ・データを含みます。 このファイルの形式は、 |
RARファイルにパッケージされているリソース・アダプタに対する実装コード、構成プロパティおよびセキュリティ設定に関する情報を含みます。 |
OC4Jにリソース・アダプタをデプロイするためのデプロイ構成を含みます。EIS接続情報、使用するJNDI名、接続プール・パラメータ、リソース・プリンシパル・マッピングが含まれています。 このファイルの形式は、
スタンドアロンのリソース・アダプタがデプロイされるOC4Jインスタンスでは、それらのスタンドアロン・リソース・アダプタの列挙が含まれます。埋込みリソース・アダプタがデプロイされるJ2EEアプリケーションでは、アプリケーションにバンドルされている埋込みリソース・アダプタの一覧が含まれます。 このファイルの形式は、 |
WARファイルにパッケージされているWebサービス・アプリケーションについて、WSDL情報やJAX-RPCマッピング・データなどのWebサービスに関する記述が含まれます。 |
WSDLファイルを公開するかどうかなど、OC4J Webサービス・コンテナが使用するプロパティを定義します。また、Webサービスとして実装されるEJBに固有のエンドポイント・アドレスやデータも定義されています。このファイルは、WARまたはEJB JARにパッケージできます。 このファイルの形式は、 |
前述の拡張に加えて、データソースとセキュリティ・ロールのマッピングを定義するためのOC4J固有ディスクリプタが追加されます。J2EEの仕様では、このようなリソースを定義するための標準ディスクリプタは提供されていません。先に説明したOC4J固有のディスクリプタと同様に、これらのディスクリプタも、必要に応じて、アプリケーションとともにパッケージしてOC4Jにデプロイできます。
表7-2 その他のOC4J固有ディスクリプタ
ディスクリプタ | 概要 |
---|---|
|
1つ以上のデータベースに接続するためにアプリケーションが使用する1つ以上のデータソースを定義します。データソースにより、データベースに対する接続を作成するための、ベンダーに依存しない移植性のある方法が提供されます。データソースのプロパティは、特定のデータベースを表すように設定されます。 このファイルの形式は、 |
|
XMLプロバイダ・タイプを指定するときに、必要に応じてアプリケーションまたはモジュールを提供できます。ユーザーおよびロールについてのJava Authentication and Authorization Service(JAAS)データを格納します。
|
|
OC4Jインスタンスのセキュリティ構成を含みます。ユーザーとロールを定義するには、アプリケーション・レベルで
|
J2EE標準では、application.xml
というアプリケーション・ディスクリプタの概念と形式が定義されています。このディスクリプタは、J2EEアプリケーションを含むEARファイルの/META-INF
ディレクトリに配置する必要があります。アプリケーション・ディスクリプタは、追加構成情報とともにアプリケーションに組み込まれているモジュールのマニフェストとして動作します。一部の開発環境では自動的に作成されます。
詳細は、J2EE仕様を参照してください。
次に、EJBモジュール、Webモジュールおよびアプリケーション・クライアント・モジュールを使用したアプリケーションの例を示します。
<?xml version="1.0" ?> <!DOCTYPE application (View Source for full doctype...)> <application> <display-name>stateful, application:</display-name> <description> A sample J2EE application that uses a remote stateful session bean to call a local entity bean. </description> <module> <ejb>stateful-ejb.jar</ejb> </module> <module> <web> <web-uri>stateful-web.war</web-uri> <context-root>/stateful</context-root> </web> </module> <module> <java>stateful-client.jar</java> </module> </application>
J2EE標準アプリケーション・ディスクリプタであるapplication.xml
は、OC4J固有のアプリケーション・レベルのアプリケーション・ディスクリプタであるorion-application.xml
によって拡張されます。このファイルには、追加のOC4J固有構成データが含まれます。必要に応じて、EARファイルの/META-INF
ディレクトリで、application.xml
ファイルにorion-application.xml
ファイルを指定できます。
EARファイルにorion-application.xml
ファイルを含めると、OC4Jは、アプリケーションのデプロイ・プロセスの間に作成されるデプロイ・プランを、このファイルで指定された値で初期化します。デプロイ時におけるデプロイ・プランの作成と編集の詳細は、『Oracle Containers for J2EEデプロイメント・ガイド』を参照してください。
このデータは、必要に応じて、Oracle Enterprise Manager 10g Application Server ControlコンソールおよびJDeveloperで提供されているデプロイ・プラン・エディタ機能を使用して、デプロイ時に編集できます。最終的なデータは、ORACLE_HOME
/j2ee/
instance
/application-deployments
ディレクトリに生成されるorion-application.xml
ファイルに書き込まれます。
orion-application.xml
ファイルがEARファイルに含まれていない場合には、前述のとおり、OC4Jグローバル・アプリケーション・ディスクリプタ(デフォルトの場合と同じように、OC4Jのデフォルト・アプリケーションが親アプリケーションとみなされます)およびEARファイル内のapplication.xml
ファイルから継承したデフォルトの設定を使用して、デプロイメント・ディレクトリにファイルが生成されます。
アプリケーション構造内でorion-application.xml
が適合する位置については、「OC4JでのJ2EEアプリケーションの構造」を参照してください。
注意: OC4Jがorion-application.xml を生成する際に、内容が変更される場合がありますが、この変更は透過的です。たとえば、デフォルト値を指定する属性設定が無視または削除される場合があります。 |
通常、orion-application.xml
は、セキュリティ・ロール・マッピングなどのOC4J固有の構成を定義するためにのみ使用します。また、OC4Jでファイルが生成される場合は、J2EEのapplication.xml
ファイルで指定されているモジュールを反映するために、<web-module>
要素が作成されることに注意してください。
次に、OC4J固有の構成の例を示します。この例では、「J2EE標準アプリケーション・ディスクリプタ(application.xml)のパッケージング」にある、標準のapplication.xml
ファイルの例でのEJB、Webおよびクライアント・モジュールと同じ定義を使用します。
<orion-application default-data-source="jdbc/OracleDS"> <ejb-module remote="false" path="stateful-ejb.jar" /> <web-module id="stateful-web" path="stateful-web.war" /> <client-module path="stateful-client.jar" auto-start="false" /> <persistence path="persistence" /> <log> <file path="application.log" /> </log> <namespace-access> <read-access> <namespace-resource root=""> <security-role-mapping name="<jndi-user-role>"> <group name="users" /> </security-role-mapping> </namespace-resource> </read-access> <write-access> <namespace-resource root=""> <security-role-mapping name="<jndi-user-role>"> <group name="users" /> </security-role-mapping> </namespace-resource> </write-access> </namespace-access> </orion-application>