ヘッダーをスキップ
Oracle Fusion Middleware Oracle TopLink開発者ガイド
11gリリース1(11.1.1)
B56246-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

10 TopLinkアプリケーションのパッケージ化

アプリケーションのコンポーネントをパッケージにする方法は、アプリケーションのタイプおよびアプリケーションのデプロイをどのように計画するかに依存します。

この章では、様々なタイプのアプリケーションに使用される、共通のパッケージ化計画に適用可能なTopLink固有の詳細を説明します。

この章の内容は次のとおりです。


注意:

EJB 3.0を使用している場合、一部のデプロイ・ファイルのかわりに、注釈を使用できます。デプロイメント・ディスクリプタを含めて、注釈をオーバーライドするか、または注釈でサポートされていないオプションを指定します。

詳細は、次を参照してください。

10.1 Javaアプリケーションのパッケージ化

Java EE以外のJavaアプリケーションでは、例10-1で示されているように、単一のJARファイルでアプリケーションをパッケージ化することが一般的です。

例10-1 Java EE以外のJavaアプリケーションのパッケージ化

domain_module.jar
    Java classes that represent the objects mapped
    project.xml
    session.xml
    META-INF
        Manifest.mf

このJARには、アプリケーションで必要とされる、次のTopLinkファイルとドメイン・オブジェクトが含まれています。

JARファイルを作成すると、JARビルド・ユーティリティにより、ディレクトリ構造がJAR内に自動的に作成されます。sessions.xmlファイルとproject.xmlファイル(またはプロジェクト・クラスのファイル)がJARファイルのルートにあることを確認してください。クラスのディレクトリ構造がJARのルートから始まっていることを確認してください。

JARファイルのルートでproject.xmlまたはsessions.xmlファイルを格納しない場合、10.8項「TopLinkメタデータ・ファイルのリソース・パスを使用したパッケージ化」を参照してください。

10.2 JavaServer Pagesおよびサーブレット・アプリケーションのパッケージ化

EJBを使用しない単純なJava EEアプリケーションでは、例10-2で示されているように、各種のJava EEアプリケーション・コンポーネント・アーカイブで作成されたエンタープライズ・アーカイブ(EAR)ファイルでアプリケーションをパッケージ化することが一般的です。

例10-2 EJBを使用しないJava EE JSPまたはサーブレット・アプリケーションのパッケージ化

appname.ear
    META-INF
        application.xml
        orion-application.xml
    domain_module.jar
        Java classes that represent the object mapped
        project.xml
        session.xm
        META-INF
            Manifest.mf
    web_module.war
        html pages, JSP's, etc.
        META-INF
            web.xml
            orion-web.xml
        classes
            servlet classes
        lib
    client_module.jar
        Client classes
        META-INF
            application-client.xml
            orion-application-client.xml

TopLinkに依存するコンポーネント・アーカイブには、TopLinkドメインJAR(10.2.1項「TopLinkドメインJARの作成方法」を参照)が含まれます。

10.2.1 TopLinkドメインJARの作成方法

ドメインJARには、アプリケーションで必要とされる、次のTopLinkファイルとドメイン・オブジェクトが含まれています。

  • sessions.xml9.1.2項「sessions.xmlファイル」を参照)

  • project.xml9.1.1項「project.xmlファイル」を参照)(またはXMLファイルを使用してデプロイを行わない場合は、コンパイル済のProjectクラス・ファイル)

  • アプリケーションで必要とされるマップ済クラス(完全に解決されたディレクトリ構造に格納)

JARファイルを作成すると、JARビルド・ユーティリティにより、ディレクトリ構造がJAR内に自動的に作成されます。sessions.xmlファイルとproject.xmlファイル(またはproject.classファイル)がJARファイルのルートにあることを確認してください。クラスのディレクトリ構造がJARのルートから始まっていることも確認してください。

JARファイルのルートでproject.xmlまたはsessions.xmlファイルを格納しない場合、10.8項「TopLinkメタデータ・ファイルのリソース・パスを使用したパッケージ化」を参照してください。

10.3 セッションBeanアプリケーションのパッケージ化

選択するパッケージ化計画は、EJB 1.nまたは2.nセッションBeanアプリケーション(10.3.1項「EJB 1.nおよび2.nセッションBeanアプリケーションをパッケージ化する方法」を参照)とEJB 3.0セッションBeanアプリケーション(10.3.2項「EJB 3.0セッションBeanアプリケーションをパッケージ化する方法」を参照)のどちらをパッケージ化するかによって異なります。

10.3.1 EJB 1.nおよび2.nセッションBeanアプリケーションをパッケージ化する方法

セッションBeanを使用したJava EEアプリケーションでは、例10-3で示されているように、各種のJava EEアプリケーション・コンポーネント・アーカイブで作成されたエンタープライズ・アーカイブ(EAR)ファイルでアプリケーションをパッケージ化することが一般的です。

例10-3 セッションBeanを使用したJava EEアプリケーションのパッケージ化

appname.ear
    META-INF
        application.xml
        orion-application.xml
    ejb_module_X.jar
        EJB classes - session and non-entity beans
        META-INF
            ejb-jar.xml
            orion-ejb-jar.xml - no persistence-manager subentries
    domain_module.jar
        Java classes that represent the object mapped
        project.xml
        session.xml
        META-INF
            Manifest.mf
    web_module.war
        html pages, JSP's, etc.
        META-INF
            web.xml
            orion-web.xml
        classes
            servlet classes
        lib
    client_module.jar
        Client classes
        META-INF
            application-client.xml
            orion-application-client.xml

TopLinkに依存するコンポーネント・アーカイブは、次のとおりです。

10.3.2 EJB 3.0セッションBeanアプリケーションをパッケージ化する方法

EJB 3.0セッションBeanアプリケーションをパッケージ化する方法の詳細は、『EclipseLink Developer's Guide』の「Packaging an EclipseLink JPA Application」(http://wiki.eclipse.org/Packaging_and_Deploying_EclipseLink_JPA_Applications_%28ELUG%29#Packaging_an_EclipseLink_JPA_Application)を参照してください。

10.3.3 TopLinkドメインJARの作成方法

ドメインJARには、アプリケーションで必要とされる、次のTopLinkファイルとドメイン・オブジェクトが含まれています。

  • sessions.xml9.1.2項「sessions.xmlファイル」を参照)

  • project.xml9.1.1項「project.xmlファイル」を参照)(またはXMLファイルを使用してデプロイを行わない場合は、コンパイル済のProject.classファイル)

  • アプリケーションで必要とされるマップ済クラス(完全に解決されたディレクトリ構造に格納)

JARファイルを作成すると、JARビルド・ユーティリティにより、ディレクトリ構造がJAR内に自動的に作成されます。sessions.xmlファイルとproject.xmlファイル(またはproject.classファイル)がJARファイルのルートにあることを確認してください。クラスのディレクトリ構造がJARのルートから始まっていることも確認してください。

JARファイルのルートでproject.xmlまたはsessions.xmlファイルを格納しない場合、10.8項「TopLinkメタデータ・ファイルのリソース・パスを使用したパッケージ化」を参照してください。

10.3.4 EJB JARの作成方法

このタイプのアプリケーションでは、EJB JARにはセッションBeanが含まれます。したがって、そのorion-ejb-jar.xmlファイルには、persistence-managerまたはpm-propertiesエントリは含まれません。これらのエントリは、CMPアプリケーションに対してのみ適用されます。

10.4 JPAアプリケーションのパッケージ化

JPAアプリケーションをパッケージ化する方法の詳細は、『EclipseLink Developer's Guide』の「Packaging an EclipseLink JPA Application」(http://wiki.eclipse.org/Packaging_and_Deploying_EclipseLink_JPA_Applications_%28ELUG%29#Packaging_an_EclipseLink_JPA_Application)を参照してください。

10.5 ウィービングを実行するPOJOアプリケーションのパッケージ化

ウィービングを実行するPOJOアプリケーションをパッケージ化するには、sessions.xmlファイルおよびpersistence.xmlファイルを含むJARを作成します。

ウィービングの詳細は、2.10.4.1項「ウィービングを実行するPOJOアプリケーションをパッケージ化する手順」を参照してください。

10.6 CMPアプリケーションのパッケージ化

CMPを使用してエンティティBeanを永続させるJava EEアプリケーションでは、例10-4で示されているように、各種のJava EEアプリケーション・コンポーネント・アーカイブで作成されたエンタープライズ・アーカイブ(EAR)ファイルでアプリケーションをパッケージ化することが一般的です。

例10-4 コンテナ管理の永続性を備えたエンティティBeanを使用したJava EEアプリケーションのパッケージ化

appname.ear
    META-INF
        application.xml
        orion-application.xml
    cmp_ejb_module_1.jar
        EJB classes - cmp entity beans
        META-INF
            ejb-jar.xml
            orion-ejb-jar.xml - includes persistence-manager properties
            toplink-ejb-jar.xml
    ejb_module_X.jar
        EJB classes - non-entity beans
        META-INF
            ejb-jar.xml
            orion-ejb-jar.xml - no persistence-manager subentries
    web_module.war
        html pages, JSP's, etc.
        META-INF
            web.xml
            orion-web.xml
        classes
            servlet classes
        lib
    client_module.jar
        Client classes
        META-INF
            application-client.xml
            orion-application-client.xml

TopLinkに依存するコンポーネント・アーカイブには、EJB JAR(10.3.4項「EJB JARの作成方法」を参照)が含まれます。

10.6.1 EJB JARの作成方法

このタイプのアプリケーションでは、EJB JARファイルは、特に、エンティティEJBとエンティティではないEJBの両方を提供します。ファイルの内容は次のとおりです。

  • アプリケーション内のすべてのマップ済Beanに対するホームとリモート、およびすべての実装コード

  • Oracle JDeveloperまたはTopLink WorkbenchプロジェクトのEJB以外の全マップ済クラス

  • アプリケーション内のセッションBeanに対するホームとリモート、およびすべての実装コード

  • TopLink修正メソッドを含むヘルパー・クラスと、アプリケーションに必要なその他のクラス

    たとえば、oracle.toplink.ejb.cmp.DeploymentCustomizationのインスタンス(詳細は9.9.1項「persistence-managerのエントリの構成方法」表9-3にあるcustomization-classを参照)。

次のXMLファイルをEJB JAR \meta-infディレクトリに格納します。


注意:

XMLファイルをデプロイに使用しない場合、コンパイル済oracle.toplink.sessions.ProjectファイルをEJB JARのルート(\meta-infディレクトリではない)に含めます。

エンティティBeanをすべて同じデータ・ソースに対して永続させる必要があります。CMPアプリケーションに対しては、TopLinkはセッション・ブローカの機能をサポートしていません(87.7項「セッション・ブローカおよびクライアント・セッション」を参照)。

10.7 BMPアプリケーションのパッケージ化

BMPを使用してエンティティBeanを永続させるJava EEアプリケーションでは、例10-5で示されているように、各種のJava EEアプリケーション・コンポーネント・アーカイブで作成されたエンタープライズ・アーカイブ(EAR)ファイルでアプリケーションをパッケージ化することが一般的です。

例10-5 Bean管理の永続性を備えたエンティティBeanを使用したJava EEアプリケーションのパッケージ化

appname.ear
    META-INF
        application.xml
        orion-application.xml
    bmp_ejb_module_1.jar
        EJB classes - bmp entity beans
        META-INF
            ejb-jar.xml
            orion-ejb-jar.xml - includes persistence-manager properties
            toplink-ejb-jar.xml
    ejb_module_X.jar
        EJB classes - non-entity beans
        META-INF
            ejb-jar.xml
            orion-ejb-jar.xml - no persistence-manager subentries
    domain_module.jar
        Java classes that represent the object mapped
        project.xml
        session.xml
        META-INF
            Manifest.mf
    web_module.war
        html pages, JSP's, etc.
        META-INF
            web.xml
            orion-web.xml
        classes
            servlet classes
        lib
    client_module.jar
        Client classes
        META-INF
            application-client.xml
            orion-application-client.xml

TopLinkに依存するコンポーネント・アーカイブは、次のとおりです。

10.7.1 TopLinkドメインJARの作成方法

ドメインJARには、アプリケーションで必要とされる、次のTopLinkファイルとドメイン・オブジェクトが含まれています。

  • sessions.xml9.1.2項「sessions.xmlファイル」を参照)

  • project.xml9.1.1項「project.xmlファイル」を参照)(またはXMLファイルを使用してデプロイを行わない場合は、コンパイル済のProject.classファイル)

  • アプリケーションで必要とされるマップ済クラス(完全に解決されたディレクトリ構造に格納)

JARファイルを作成すると、JARビルド・ユーティリティにより、ディレクトリ構造がJAR内に自動的に作成されます。sessions.xmlファイルとproject.xmlファイル(またはproject.classファイル)がJARファイルのルートにあることを確認してください。クラスのディレクトリ構造がJARのルートから始まっていることも確認してください。

JARファイルのルートでproject.xmlまたはsessions.xmlファイルを格納しない場合、10.8項「TopLinkメタデータ・ファイルのリソース・パスを使用したパッケージ化」を参照してください。

10.7.2 EJB JARファイルの作成方法

このタイプのアプリケーションでは、EJB JARファイルは、特に、セッションBeanとエンティティBeanの両方を提供します。ファイルの内容は次のとおりです。

  • アプリケーション内のすべてのマップ済Beanに対するホームとリモート、およびすべての実装コード

  • Oracle JDeveloperまたはTopLink WorkbenchプロジェクトのEJB以外の全マップ済クラス

  • アプリケーション内のセッションBeanに対するホームとリモート、およびすべての実装コード

  • TopLink修正メソッドを含むヘルパー・クラスと、アプリケーションに必要なその他のクラス

次のXMLファイルをEJB JAR \meta-infディレクトリに格納します。

EJB JARにはコンテナ管理の永続性を備えたエンティティBeanが含まれていないため、そのorion-ejb-jar.xmlファイルに、persistence-managerまたはpm-propertiesのエントリは含められません。

詳細は、9.9.1項「persistence-managerのエントリの構成方法」を参照してください。

10.8 TopLinkメタデータ・ファイルのリソース・パスを使用したパッケージ化

JARファイルのルートでproject.xmlまたはsessions.xmlファイルを格納しない場合、それらのファイルにアクセスする場合は、ファイルへのフル・リソース・パスを入力する必要があります。リソース・パスには、\ではなく、/を使用していることを確認してください。\はJavaでは機能しません。

たとえば、jar要素では、project.xmlおよびsessions.xmlファイルを次のように参照します。

<jar>/myapp/ordersys/persist/sessions.xml
<jar>/myapp/ordersys/persist/project.xml

sessions.xmlファイルでは、project.xmlを次のように参照します。

myapp/ordersys/persist/project.xml

セッションを取得するには、次を使用します。

SessionManager.getManager().getSession(
    new XMLSessionConfigLoader("myapp/ordersys/persist/sessions.xml"),
    "OrdersysSession",
    getClass().getClassLoader()
);

実行時のセッションの取得の詳細は、90.3項「セッション・マネージャからのセッションの取得」を参照してください。