アプリケーションのコンポーネントをパッケージにする方法は、アプリケーションのタイプおよびアプリケーションのデプロイをどのように計画するかに依存します。
この章では、次のアプリケーションのタイプに使用される、共通のパッケージ化計画に適用可能なTopLink固有の詳細を説明します。
詳細は、次の項を参照してください。
J2EE以外のJavaアプリケーションでは、図9-1で示されているように、単一のJARファイルでアプリケーションをパッケージ化することが一般的です。
このJARには、アプリケーションで必要とされる、次のTopLinkファイルとドメイン・オブジェクトが含まれています。
project.xmlファイル(またはXMLファイルを使用してデプロイを行わない場合は、コンパイル済のプロジェクト・クラス・ファイル)
アプリケーションで必要とされるマップ済クラス(完全に解決されたディレクトリ構造に格納)
JARファイルを作成すると、JARビルド・ユーティリティにより、ディレクトリ構造がJAR内に自動的に作成されます。sessions.xml
ファイルとproject.xml
ファイル(またはプロジェクト・クラスのファイル)がJARファイルのルートにあることを確認してください。クラスのディレクトリ構造がJARのルートから始まっていることを確認してください。
JARファイルのルートでproject.xml
またはsessions.xml
ファイルを格納しない場合、「TopLinkメタデータ・ファイルのリソース・パスを使用したパッケージ化」を参照してください。
EJBを使用しないJ2EEアプリケーションでは、図9-2で示されているように、各種のJ2EEアプリケーション・コンポーネント・アーカイブで作成されたエンタープライズ・アーカイブ(EAR)ファイルでアプリケーションをパッケージ化することが一般的です。
図9-2 EJBを使用しないJ2EE JSPまたはサーブレット・アプリケーションのパッケージ化
TopLinkに依存するコンポーネント・アーカイブは、次のとおりです。
ドメインJARには、アプリケーションで必要とされる、次のTopLinkファイルとドメイン・オブジェクトが含まれています。
project.xmlファイル(またはXMLファイルを使用してデプロイを行わない場合は、コンパイル済のプロジェクト
・クラス・ファイル)
アプリケーションで必要とされるマップ済クラス(完全に解決されたディレクトリ構造に格納)
JARファイルを作成すると、JARビルド・ユーティリティにより、ディレクトリ構造がJAR内に自動的に作成されます。sessions.xml
ファイルとproject.xml
ファイル(またはproject.class
ファイル)がJARファイルのルートにあることを確認してください。クラスのディレクトリ構造がJARのルートから始まっていることも確認してください。
JARファイルのルートでproject.xml
またはsessions.xml
ファイルを格納しない場合、「TopLinkメタデータ・ファイルのリソース・パスを使用したパッケージ化」を参照してください。
セッションBeanを使用したJ2EEアプリケーションでは、図9-3で示されているように、各種のJ2EEアプリケーション・コンポーネント・アーカイブで作成されたエンタープライズ・アーカイブ(EAR)ファイルでアプリケーションをパッケージ化することが一般的です。
TopLinkに依存するコンポーネント・アーカイブは、次のとおりです。
ドメインJARには、アプリケーションで必要とされる、次のTopLinkファイルとドメイン・オブジェクトが含まれています。
project.xmlファイル(またはXMLファイルを使用してデプロイを行わない場合は、コンパイル済のproject.classファイル)
アプリケーションで必要とされるマップ済クラス(完全に解決されたディレクトリ構造に格納)
JARファイルを作成すると、JARビルド・ユーティリティにより、ディレクトリ構造がJAR内に自動的に作成されます。sessions.xml
ファイルとproject.xml
ファイル(またはproject.class
ファイル)がJARファイルのルートにあることを確認してください。クラスのディレクトリ構造がJARのルートから始まっていることも確認してください。
JARファイルのルートでproject.xml
またはsessions.xml
ファイルを格納しない場合、「TopLinkメタデータ・ファイルのリソース・パスを使用したパッケージ化」を参照してください。
このタイプのアプリケーションでは、EJB JARにはセッションBeanが含まれます。したがって、そのorion-ejb-jar.xml
ファイルには、persistence-manager
またはpm-properties
エントリは含まれません。これらのエントリは、CMPアプリケーションに対してのみ適用されます。
CMPを使用してエンティティBeanを永続させるJ2EEアプリケーションでは、図9-4で示されているように、各種のJ2EEアプリケーション・コンポーネント・アーカイブで作成されたエンタープライズ・アーカイブ(EAR)ファイルでアプリケーションをパッケージ化することが一般的です。
図9-4 コンテナ管理の永続性を備えたエンティティBeanを使用したJ2EEアプリケーションのパッケージ化
TopLinkに依存するコンポーネント・アーカイブは、次のとおりです。
このタイプのアプリケーションでは、EJB JARファイルは、特に、エンティティEJBとエンティティではないEJBの両方を提供します。ファイルの内容は次のとおりです。
アプリケーション内のすべてのマップ済Beanに対するホームとリモート、およびすべての実装コード
TopLink WorkbenchプロジェクトのEJB以外の全マップ済クラス
アプリケーション内のセッションBeanに対するホームとリモート、およびすべての実装コード
TopLink修正メソッドを含むヘルパー・クラスと、アプリケーションに必要なその他のクラス
たとえば、oracle.toplink.ejb.cmp.DeploymentCustomization
のインスタンス(詳細は「persistence-managerのエントリの構成」の表8-3にあるcustomization-class
を参照)。
次のXMLファイルをEJB JAR \meta-inf
ディレクトリに格納します。
注意: XMLファイルをデプロイに使用しない場合、コンパイル済oracle.toplink.sessions.Project ファイルをEJB JARのルート(\meta-inf ディレクトリではない)に含めます。 |
EJB JARには、セッションBeanとエンティティBeanの両方が含まれているため、OC4JまたはBEA WebLogic(WLS)を使用している場合、<J2EE-Container>-ejb-jar.xml
にpersistence-manager
およびpm-properties
のエントリが含まれている必要があります。詳細は、「persistence-managerのエントリの構成」を参照してください。
エンティティBeanをすべて同じデータ・ソースに対して永続させる必要があります。CMPアプリケーションに対しては、TopLinkはセッション・ブローカの機能をサポートしていません(「セッション・ブローカおよびクライアント・セッション」を参照)。
BMPを使用してエンティティBeanを永続させるJ2EEアプリケーションでは、図9-5で示されているように、各種のJ2EEアプリケーション・コンポーネント・アーカイブで作成されたエンタープライズ・アーカイブ(EAR)ファイルでアプリケーションをパッケージ化することが一般的です。
図9-5 Bean管理の永続性を備えたエンティティBeanを使用したJ2EEアプリケーションのパッケージ化
TopLinkに依存するコンポーネント・アーカイブは、次のとおりです。
ドメインJARには、アプリケーションで必要とされる、次のTopLinkファイルとドメイン・オブジェクトが含まれています。
project.xmlファイル(またはXMLファイルを使用してデプロイを行わない場合は、コンパイル済のproject.classファイル)
アプリケーションで必要とされるマップ済クラス(完全に解決されたディレクトリ構造に格納)
JARファイルを作成すると、JARビルド・ユーティリティにより、ディレクトリ構造がJAR内に自動的に作成されます。sessions.xml
ファイルとproject.xml
ファイル(またはproject.class
ファイル)がJARファイルのルートにあることを確認してください。クラスのディレクトリ構造がJARのルートから始まっていることも確認してください。
JARファイルのルートでproject.xml
またはsessions.xml
ファイルを格納しない場合、「TopLinkメタデータ・ファイルのリソース・パスを使用したパッケージ化」を参照してください。
このタイプのアプリケーションでは、EJB JARファイルは、特に、セッションBeanとエンティティBeanの両方を提供します。ファイルの内容は次のとおりです。
アプリケーション内のすべてのマップ済Beanに対するホームとリモート、およびすべての実装コード
TopLink WorkbenchプロジェクトのEJB以外の全マップ済クラス
アプリケーション内のセッションBeanに対するホームとリモート、およびすべての実装コード
TopLink修正メソッドを含むヘルパー・クラスと、アプリケーションに必要なその他のクラス
次のXMLファイルをEJB JAR \meta-inf
ディレクトリに格納します。
EJB JARにはコンテナ管理の永続性を備えたエンティティBeanが含まれていないため、そのorion-ejb-jar.xml
ファイルに、persistence-manager
またはpm-properties
のエントリは含められません。
詳細は、「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() );
実行時のセッションの取得の詳細は、「セッション・マネージャからのセッションの取得」を参照してください。