アプリケーションのコンポーネントをパッケージにする方法は、アプリケーションのタイプおよびアプリケーションのデプロイをどのように計画するかに依存します。
この章では、様々なタイプのアプリケーションに使用される、共通のパッケージ化計画に適用可能なTopLink固有の詳細を説明します。
この章の内容は次のとおりです。
詳細は、次を参照してください。
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ファイルとドメイン・オブジェクトが含まれています。
sessions.xml
(9.1.2項「sessions.xmlファイル」を参照)
project.xml
(9.1.1項「project.xmlファイル」を参照)(またはXMLファイルを使用してデプロイを行わない場合は、コンパイル済のProject
クラス・ファイル)
アプリケーションで必要とされるマップ済クラス(完全に解決されたディレクトリ構造に格納)
JARファイルを作成すると、JARビルド・ユーティリティにより、ディレクトリ構造がJAR内に自動的に作成されます。sessions.xml
ファイルとproject.xml
ファイル(またはプロジェクト・クラスのファイル)がJARファイルのルートにあることを確認してください。クラスのディレクトリ構造がJARのルートから始まっていることを確認してください。
JARファイルのルートでproject.xml
またはsessions.xml
ファイルを格納しない場合、10.8項「TopLinkメタデータ・ファイルのリソース・パスを使用したパッケージ化」を参照してください。
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の作成方法」を参照)が含まれます。
ドメインJARには、アプリケーションで必要とされる、次のTopLinkファイルとドメイン・オブジェクトが含まれています。
sessions.xml
(9.1.2項「sessions.xmlファイル」を参照)
project.xml
(9.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メタデータ・ファイルのリソース・パスを使用したパッケージ化」を参照してください。
選択するパッケージ化計画は、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アプリケーションをパッケージ化する方法」を参照)のどちらをパッケージ化するかによって異なります。
セッション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に依存するコンポーネント・アーカイブは、次のとおりです。
TopLinkドメインJAR(10.2.1項「TopLinkドメインJARの作成方法」を参照)
EJB JAR(10.3.4項「EJB JARの作成方法」を参照)
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
)を参照してください。
ドメインJARには、アプリケーションで必要とされる、次のTopLinkファイルとドメイン・オブジェクトが含まれています。
sessions.xml
(9.1.2項「sessions.xmlファイル」を参照)
project.xml
(9.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メタデータ・ファイルのリソース・パスを使用したパッケージ化」を参照してください。
このタイプのアプリケーションでは、EJB JARにはセッションBeanが含まれます。したがって、そのorion-ejb-jar.xml
ファイルには、persistence-manager
またはpm-properties
エントリは含まれません。これらのエントリは、CMPアプリケーションに対してのみ適用されます。
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
)を参照してください。
ウィービングを実行するPOJOアプリケーションをパッケージ化するには、sessions.xml
ファイルおよびpersistence.xml
ファイルを含むJARを作成します。
ウィービングの詳細は、2.10.4.1項「ウィービングを実行するPOJOアプリケーションをパッケージ化する手順」を参照してください。
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の作成方法」を参照)が含まれます。
このタイプのアプリケーションでは、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
ディレクトリに格納します。
ejb-jar.xml
(ejb-jar.xmlファイルを参照)
JAVA-EE-CONTAINER-ejb-jar.xml
(JAVA-EE-CONTAINER-ejb-jar.xmlファイルを参照)
toplink-ejb-jar.xml
(toplink-ejb-jar.xmlファイルを参照)
注意: XMLファイルをデプロイに使用しない場合、コンパイル済oracle.toplink.sessions.Project ファイルをEJB JARのルート(\meta-inf ディレクトリではない)に含めます。 |
エンティティBeanをすべて同じデータ・ソースに対して永続させる必要があります。CMPアプリケーションに対しては、TopLinkはセッション・ブローカの機能をサポートしていません(87.7項「セッション・ブローカおよびクライアント・セッション」を参照)。
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に依存するコンポーネント・アーカイブは、次のとおりです。
TopLinkドメインJAR(10.2.1項「TopLinkドメインJARの作成方法」を参照)
EJB JAR(10.3.4項「EJB JARの作成方法」を参照)
ドメインJARには、アプリケーションで必要とされる、次のTopLinkファイルとドメイン・オブジェクトが含まれています。
sessions.xml
(9.1.2項「sessions.xmlファイル」を参照)
project.xml
(9.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メタデータ・ファイルのリソース・パスを使用したパッケージ化」を参照してください。
このタイプのアプリケーションでは、EJB JARファイルは、特に、セッションBeanとエンティティBeanの両方を提供します。ファイルの内容は次のとおりです。
アプリケーション内のすべてのマップ済Beanに対するホームとリモート、およびすべての実装コード
Oracle JDeveloperまたはTopLink WorkbenchプロジェクトのEJB以外の全マップ済クラス
アプリケーション内のセッションBeanに対するホームとリモート、およびすべての実装コード
TopLink修正メソッドを含むヘルパー・クラスと、アプリケーションに必要なその他のクラス
次のXMLファイルをEJB JAR \meta-inf
ディレクトリに格納します。
ejb-jar.xml
(ejb-jar.xmlファイルを参照)
JAVA-EE-CONTAINER-ejb-jar.xml
(JAVA-EE-CONTAINER-ejb-jar.xmlファイルを参照)
EJB JARにはコンテナ管理の永続性を備えたエンティティBeanが含まれていないため、そのorion-ejb-jar.xml
ファイルに、persistence-manager
またはpm-properties
のエントリは含められません。
詳細は、9.9.1項「persistence-managerのエントリの構成方法」を参照してください。
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項「セッション・マネージャからのセッションの取得」を参照してください。