アプリケーションのコンポーネントをパッケージにする方法は、アプリケーションのタイプおよびアプリケーションのデプロイをどのように計画するかに依存します。
この章では、様々なタイプのアプリケーションに使用される、共通のパッケージ化計画に適用可能な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項「セッション・マネージャからのセッションの取得」を参照してください。