ヘッダーをスキップ
Oracle Containers for J2EE開発者ガイド
10g(10.1.3.5.0)
B56031-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

7 アプリケーションのパッケージングおよびテスト

この章では、OC4JにデプロイするためにJ2EEに準拠するアプリケーションとモジュールをパッケージする際のガイドラインについて説明します。次の項が含まれます。

J2EEアプリケーションのパッケージングの概要

作成したものをOC4Jに正しくデプロイするには、J2EEアプリケーションとモジュールを適切にパッケージングすることが重要です。J2EE 1.4に完全に準拠するコンテナであるOC4Jは、複数のJ2EEアプリケーションの異なるモジュールへのパッケージングをサポートし、このようにして作成したモジュールは一緒に、または個別にデプロイできます。モジュールは2つの種類に分類できます。

完全なJ2EEアプリケーションは、末尾が拡張子.earの標準Javaアーカイブ(JAR)ファイルであるエンタープライズ・アーカイブ(EAR)ファイルとして、編成および提供されます。ファイルにはJ2EEアプリケーション・ディスクリプタが含まれており、OC4J固有のディスクリプタを含めることができます。JDK 6またはJDK 5.0ではlibディレクトリを含めることができます。EARは、基本的に次のJ2EEモジュールを1つ以上含むメタコンテナです。

前述のモジュールはいずれも、完全なJ2EEアプリケーションの一部としてEARファイル内にパッケージする必要はなく、個別にOC4Jにデプロイできます。これにより、アプリケーション全体を再デプロイしなくても、更新したモジュールのみをデプロイできます。


注意:

Webサービスは、WARファイルとして、またはステートレス・セッションBeanを含むEJB JARファイルとしてパッケージできます。

作成したものをOC4Jに正しくデプロイするには、J2EEアプリケーションとモジュールを適切にパッケージングすることが重要です。次の項で、これらのファイルの構造について説明します。

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仕様および関連する仕様で定義されています。J2EE仕様は次の場所にあります。
http://java.sun.com/j2ee/docs.html

アプリケーション・モジュール(EARファイルおよびWARファイル)の構造

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サイトを参照してください。
http://ant.apache.org

EARファイルの例

utility.earの内容は次のとおりです。EJB、クライアント・アプリケーションまたはリソース・アダプタ・モジュールがある場合、関連するJARファイルはWARファイルと同じレベルになります。オプションで、/META-INFディレクトリにorion-application.xmlファイルを組み込むことができます。この例では、組み込むかわりに、デプロイ時にOC4Jによって生成されます。

META-INF/MANIFEST.MF
META-INF/application.xml
utility_web.war

WARファイルの例

utility_web.warの内容は次のとおりです。オプションで、orion-web.xmlファイルも/WEB-INFディレクトリに組み込むことができます。この例では、組み込むかわりに、デプロイ時にOC4Jによって生成されます。

META-INF/MANIFEST.MF
WEB-INF/classes/TestStatusServlet.class
WEB-INF/web.xml
index.html

注意:

MANIFEST.MFファイルは、JARユーティリティにより自動的に作成されます。

デプロイメント・ディスクリプタのパッケージング

アプリケーションまたはモジュールを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固有の構成データをすべて統合するデプロイ・プランを作成できます。Application Server Controlのデプロイ・プラン・エディタを使用して、デプロイ時に構成データを設定または編集できます。デプロイ・プランに関する作業の詳細は、『Oracle Containers for J2EEデプロイメント・ガイド』を参照してください。

表7-1 J2EEとOC4Jのデプロイメント・ディスクリプタ

J2EE標準ディスクリプタ OC4J固有ディスクリプタ

application.xml

EJBモジュールやWebモジュールなどのJ2EEアプリケーションのコンポーネントを指定します。アプリケーションのその他の構成も指定できます。このディスクリプタは、アプリケーションのEARファイルの/META-INFディレクトリに含まれている必要があります。

orion-application.xml

一般に、セキュリティ・ロールのマッピング、データソースの定義、JNDIネームスペース・アクセスおよび共有ライブラリの置換など、OC4J固有の構成を定義します。J2EEのapplication.xmlディスクリプタで指定されている追加モジュールを指定するために使用することもできます。

このファイルの形式は、orion-application-10_0.xsdで定義されています。

web.xml

静的ページ、サーブレットおよびJSPページなど、J2EEのWebコンポーネントのセットを指定および構成します。Webコンポーネントが呼び出す可能性のあるEJBモジュールなどの他のコンポーネントを指定および構成することもできます。各Webコンポーネントは互いに組み合されて独立したWebアプリケーションを形成し、スタンドアロンのWARファイルにデプロイされます。

orion-web.xml

開発者モードやJSPの自動再ロードなどのOC4Jの機能を有効にするかどうかなど、アプリケーション・レベルのOC4J固有の構成データで、標準のJ2EEディスクリプタを拡張します。

このファイルの形式は、orion-web-10_0.xsdで定義されています。

ejb-jar.xml

JAR内のEnterprise JavaBeanモジュールの具体的な構造的特性と依存性を定義し、Beanが想定しているコンテナとの対話方法についてEJBコンテナに指示します。

EJB 3.0を使用している場合、このデプロイメント・ディスクリプタ・ファイルはオプションであり、かわりに注釈を使用できます。このリリースでは、OC4JはセッションBeanおよびメッセージドリブンBeanのすべてのオプションで、EJB 3.0の注釈とejb-jar.xmlの両方をサポートします。ejb-jar.xmlファイルは、EJB 3.0エンティティでは使用しません。ejb-jar.xmlファイル内の構成は注釈より優先されます。EJB 3.0エンティティでは、注釈またはTopLink JPA永続性プロバイダのデプロイXMLファイル(toplink-ejb-jar.xmlおよびejb3-toplink-sessions.xml)を使用する必要があります。詳細は、『Oracle Containers for J2EE Enterprise JavaBeans開発者ガイド』を参照してください。

orion-ejb-jar.xml

EJBプールの設定、タイムアウトと再試行の設定、JNDIマッピングおよびfinderメソッドの仕様など、アーカイブ内のすべてのEJBモジュールに対するOC4J固有の構成データを定義します。TopLink永続性マネージャに対するプロパティも含みます。

このファイルの形式は、orion-ejb-jar-10_0.xsdで定義されています。

persistence.xml

エンティティを使用するEJB 3.0アプリケーションで、1つ以上の永続性ユニットを定義します。このリリースでは、EJB JAR、WARまたはEARにpersistence.xmlを定義することができます。このデプロイメント・ディスクリプタ・ファイルは、EJB JARファイルのMETA-INFディレクトリ内、WebモジュールのWEB-INF/classes/META-INFディレクトリ内、EARのlibディレクトリにパッケージされた標準JAR内、またはエンティティをパッケージしたWEB-INF/libディレクトリ内にパッケージされます。詳細は、『Oracle Containers for J2EE Enterprise JavaBeans開発者ガイド』を参照してください。


application-client.xml

アーカイブにパッケージされているJ2EEアプリケーション・クライアントによって使用されるEJBモジュールと他のリソースを記述します。

orion-application-client.xml

EJBモジュールのホーム・インタフェースに対するJNDIマッピング、またはデータソース、JMSキュー、メール・セッションなどの外部リソースに対するJNDIマッピングなど、OC4Jのデプロイ・データを含みます。

このファイルの形式は、orion-application-client-10_0.xsdで定義されています。

ra.xml

RARファイルにパッケージされているリソース・アダプタに対する実装コード、構成プロパティおよびセキュリティ設定に関する情報を含みます。

oc4j-ra.xml

OC4Jにリソース・アダプタをデプロイするためのデプロイ構成を含みます。EIS接続情報、使用するJNDI名、接続プール・パラメータ、リソース・プリンシパル・マッピングが含まれています。

このファイルの形式は、oc4j-connector-factories-10_0.xsdで定義されています。

oc4j-connectors.xml

スタンドアロンのリソース・アダプタがデプロイされるOC4Jインスタンスでは、それらのスタンドアロン・リソース・アダプタの列挙が含まれます。埋込みリソース・アダプタがデプロイされるJ2EEアプリケーションでは、アプリケーションにバンドルされている埋込みリソース・アダプタの一覧が含まれます。

このファイルの形式は、oc4j-connectors-10_0.xsdで定義されています。

webservices.xml

WARファイルにパッケージされているWebサービス・アプリケーションについて、WSDL情報やJAX-RPCマッピング・データなどのWebサービスに関する記述が含まれます。

oracle-webservices.xml

WSDLファイルを公開するかどうかなど、OC4J Webサービス・コンテナが使用するプロパティを定義します。また、Webサービスとして実装されるEJBモジュールに固有のエンドポイント・アドレスやデータも定義されています。このファイルは、WARまたはEJB JARにパッケージできます。

このファイルの形式は、oracle-webservices-10_0.xsdで定義されています。


Oracleでは、データソースとセキュリティ・ロールのマッピングを定義するための追加のOC4J固有ディスクリプタを提供しています。J2EEの仕様では、このようなリソースを定義するための標準ディスクリプタは提供されていません。これらのディスクリプタをアプリケーションとともにパッケージして、OC4Jにデプロイすることもできます。

表7-2 その他のOC4J固有ディスクリプタ

ディスクリプタ 概要

data-sources.xml

1つ以上のデータベースに接続するためにアプリケーションが使用する1つ以上のデータソースを定義します。データソースにより、データベースに対する接続を作成するための、ベンダーに依存しない移植性のある方法が提供されます。データソースのプロパティは、特定のデータベースを表すように設定されます。

このファイルの形式は、data-sources-10_1.xsdで定義されています。

jazn-data.xml

XMLプロバイダ・タイプを指定するときに、必要に応じてアプリケーションまたはモジュールを提供できます。ユーザーおよびロールについてのJava Authentication and Authorization Service(JAAS)データを格納します。

jazn-data.xmlファイルの詳細は、『Oracle Containers for J2EEセキュリティ・ガイド』を参照してください。

system-jazn-data.xml

OC4Jインスタンスのセキュリティ構成を含みます。ユーザーとロールを定義するには、アプリケーション・レベルでjazn-data.xmlディスクリプタを指定できます。

system-jazn-data.xmlファイルの詳細は、『Oracle Containers for J2EEセキュリティ・ガイド』を参照してください。


J2EE標準アプリケーション・ディスクリプタ(application.xml)のパッケージング

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>

OC4J固有のアプリケーション・ディスクリプタ(orion-application.xml)のパッケージング

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 10gで提供されているデプロイ・プラン・エディタ機能を使用して、デプロイ時に編集できます。最終的なデータは、ORACLE_HOME/j2ee/instance/application-deploymentsディレクトリに生成されるorion-application.xmlファイルに書き込まれます。

orion-application.xmlファイルがEARファイルに含まれていない場合には、OC4Jグローバル・アプリケーション・ディスクリプタ(デフォルトの場合と同じように、OC4J defaultアプリケーションが親アプリケーションであることを前提とします)から継承したデフォルトの設定および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="&lt;jndi-user-role&gt;">
          <group name="users" />
        </security-role-mapping>
      </namespace-resource>
    </read-access>
    <write-access>
      <namespace-resource root="">
        <security-role-mapping name="&lt;jndi-user-role&gt;">
          <group name="users" />
        </security-role-mapping>
      </namespace-resource>
    </write-access>
  </namespace-access>
</orion-application>