第14章
この章では、アプリケーションを適切なバージョンのJ2EE (Java 2 Platform, Enterprise Edition)で動作させる方法について説明します。特に、既存のプロジェクトを新しいJ2EEバージョンに移行する場合と方法を理解しなければならないときに便利です。トピックは次のとおりです。
J2EEの概要は、Sun J2EE Webサイトを参照してください。
J2EEバージョンでは、配備するJ2EEサーバに応じて選択内容が大きく左右されます。まず、J2EEサーバがJ2EE 1.2または1.3と互換性があるかどうかを調べます。その後、次のトピックを参照して、アプリケーションにおける意味とNovell exteNd Director 開発環境での処理方法について学習します。
J2EE 1.2サーバに配備するためにアプリケーションを開発している場合は、J2EE 1.2アーカイブおよびJ2EE 1.2技術を使用できます。ただし、J2EE 1.2サーバでは、J2EE 1.3アーカイブおよびJ2EE 1.3技術がサポートされていません。
J2EE 1.2アーカイブ J2EE 1.2アーカイブは、次のとおりです。
名前とバージョン |
説明 |
---|---|
EAR 1.2 |
Enterprise (アプリケーション)アーカイブ |
WAR 2.2 |
Webアーカイブ(サーブレットおよびJSPページ用) |
EJB JAR 1.1 |
EJB (Enterprise JavaBeans)アーカイブ |
Client JAR 1.2 |
CAR (Application Client Archive) |
J2EE 1.2技術 J2EE 1.2技術には、次のものが含まれます。
J2EE 1.3サーバに配備するためにアプリケーションを開発している場合は、次のいずれかを使用できます。
つまり、J2EE 1.3サーバでは、J2EE 1.2アプリケーションだけでなくJ2EE 1.3アプリケーションもサポートしています。さらに柔軟性を増すために、J2EE 1.2モジュールと機能をJ2EE 1.3アプリケーションで混在させることもできます(次を参照)。
J2EE 1.3アーカイブ |
含むことのできるもの |
---|---|
EAR |
J2EE 1.2モジュール(WAR、EJB JAR、クライアントJAR)とJ2EE 1.3モジュールの両方 |
EJB JAR |
1.xまたは2.x CMP (Container-managed persistence)のいずれかを使用するエンティティBean |
J2EE 1.3アーカイブ J2EE 1.3アーカイブは、次のとおりです。
J2EE 1.3技術 J2EE 1.3技術には、次のものが含まれます。
J2EEに以前含まれていたJNDIおよびRMI-IIOPという技術は、現在ではJ2SE (Java 2 Platform, Standard Edition)に含まれています。
exteNd Director 開発環境では、1.2および1.3を含むJ2EEの複数バージョンに対する組み込みサポートを備えています。これにより、プロジェクトのライフサイクルを通じてバージョン関連タスク(開発、移行、および配備を含む)を処理することができます。
タスク |
実行できる操作 |
---|---|
開発 |
開発環境を使用して、次に対するプロジェクトを開発できます。
|
移行 |
開発環境を使用して、既存のプロジェクトを新しいJ2EEバージョンに移行できます。この場合、次のようなシナリオが考えられます。 |
配備 |
プロジェクトをJ2EEサーバに展開するために、開発環境(あるいは必要に応じて他社の開発ツール)が使えます。この場合、次のようなシナリオが考えられます。 |
この節では、特定の種類のプロジェクトについて吟味し、J2EEバージョンの選択を行う上でのヒントを紹介します。ここでは、次について説明します。
次の表を参照して、該当するプロジェクトシナリオを確認し、exteNd Director 開発環境で処理できる方法について学習します。
使用するもの |
操作 |
---|---|
J2EE 1.2モジュールまたはアプリケーションのソースファイル(ただし、プロジェクトはない) |
適切なプロジェクトタイプおよびバージョンを指定して、ソースファイルに対する1つまたは複数のJ2EE 1.2プロジェクトを作成する。選択肢は、次のようになります。 |
J2EE 1.3モジュールまたはアプリケーションのソースファイル(ただし、プロジェクトはない) |
適切なプロジェクトタイプおよびバージョンを指定して、ソースファイルに対する1つまたは複数のJ2EE 1.3プロジェクトを作成する。選択肢は、次のようになります。 |
パッケージ化されたJ2EE 1.2アーカイブ(ただし、ソースファイルまたはプロジェクトはない) |
適切なプロジェクトタイプおよびバージョンを指定して、アーカイブに対するJ2EE 1.2展開専用プロジェクトを作成する。選択肢は、次のようになります。 |
パッケージ化されたJ2EE 1.3アーカイブ(ただし、ソースファイルまたはプロジェクトはない) |
適切なプロジェクトタイプおよびバージョンを指定して、アーカイブに対するJ2EE 1.3展開専用プロジェクトを作成する。選択肢は、次のようになります。 |
EAR 1.2 (J2EE 1.2 Enterprise Archiveプロジェクト) |
次のいずれかを実行します。 |
EAR 1.3 (J2EE 1.3 Enterprise Archiveプロジェクト) |
次のいずれかを実行します。 |
任意のモジュールに対するJ2EE 1.2プロジェクト: |
次のいずれかを実行します。 |
任意のモジュールに対するJ2EE 1.3プロジェクト: |
次のいずれかを実行します。 |
J2EE 1.2配備専用プロジェクト(EAR 1.2、WAR 2.2、EJB 1.1、またはCAR 1.2) |
次のいずれかを実行します。 |
J2EE 1.3配備専用プロジェクト(EAR 1.3、WAR 2.3、RAR 1.0、EJB 2.0、またはCAR 1.3) |
次のいずれかを実行します。 |
新しいアプリケーションまたはモジュールで作業を始める場合は、ターゲットJ2EEサーバでサポートされている最新のJ2EEバージョンと技術を使用することが推奨されます。これにより、通常次のようなより安定したプラットフォームが提供されます。
たとえば、配備のターゲットがJ2EE 1.3サーバである場合は、(1.2アーカイブがサポートされている場合でも) J2EE 1.3アーカイブを開発する必要があります。アーカイブ内では、使用可能な最新の標準にコード化することも推奨します。Container-managed persistenceでEJBエンティティBeanを開発する場合は、1.x CMPの代わりに2.x CMPを使用することになります。
次の表を参照して、既存のJ2EEアーカイブプロジェクトを新しいJ2EEバージョンに移行する場合を判断します。
決定 |
該当する場合 |
---|---|
移行する |
プロジェクトで、最新のJ2EEバージョンの新しい機能または他の拡張機能を使用する必要がある場合 |
J2EEサーバで、最新のJ2EEバージョンの実装で導入された改善点を活用したい場合 |
|
移行しない |
最新のJ2EEバージョンをサポートしていないJ2EEサーバにプロジェクトを配備する必要がある場合 |
たとえば、J2EE 1.2 WARプロジェクトがあり、このプロジェクトにサーブレットフィルタを追加するとします。その場合、まずこのプロジェクトをJ2EE 1.3に(つまり、WAR 2.2からWAR 2.3に)移行する必要があります。
exteNd Director 開発環境では、複数のJ2EEバージョンをサポートしているため、アプリケーションの一部を作成する際にはバージョンを選択できます。具体的には次のような場合です。
汎用J2EEプロジェクトを作成する場合は、プロジェクトが表すアーカイブのJ2EEバージョン(1.2または1.3)を指定できます。デフォルトは、J2EE 1.3です。
たとえば、新しいWebアーカイブプロジェクトが必要であるとします。これを作成するには、[ファイル]>[新規作成]>[プロジェクト]の順に選択し、([一般]タブで)プロジェクトタイプとしてWARを選択します。すると、New Projectウィザードによって、プロジェクトの詳細(J2EEバージョンを含む)を入力するよう求められます。
他のタイプの汎用J2EEアーカイブプロジェクト(EAR、RAR、EJB、CAR)を作成する場合、[新規プロジェクト]ウィザードでは、J2EEバージョンの選択肢のリストが適宜調整されます。配備専用プロジェクトに対しては、プロジェクトタイプとJ2EEバージョンを統合リストから選択することによって同時に指定します。
選択したJ2EEバージョンによるプロジェクトへの影響 プロジェクトを作成すると、選択したJ2EEバージョンによっていくつかの部分が影響されます。
タグハンドラウィザードを使用すると、新しいJSPタグライブラリまたは既存のJSPタグライブラリを開発できます。新しいタグライブラリを作成する場合、ウィザードでは、サポートするJSPバージョン(1.1または1.2)を指定する必要があります。
タグハンドラウィザードを開始するには、[ファイル]>[新規作成]>[ファイル]の順に選択して、タグハンドラを選択します。すると、このウィザードによって、TLD (タグライブラリ記述子)ファイルの詳細を含む情報をいくつかのパネルで入力するよう求められます。(新しいTLDファイルに対する)これらの詳細の1つは、JSPバージョンです。
選択したJSPバージョンは、jsp-version要素によってTLDファイルに記録されます。また、この選択によって、TLDファイルに使用されるDTDも決定されます。
JSPバージョン |
TLD DTD |
---|---|
1.1 |
web-jsptaglibrary_1_1.dtd |
1.2 |
web-jsptaglibrary_1_2.dtd |
WAR 2.3プロジェクトでは、JSP 1.1および1.2タグライブラリの両方をサポートしています(ただし、JSP 1.2が推奨されています)。WAR 2.2プロジェクトでは、JSP 1.1タグライブラリのみをサポートしています。
EJBウィザードを使用すると、各種のEnterprise JavaBeansをEJBプロジェクトに追加できます。これには、1.xまたは2.x CMPのいずれかのContainer-managed persistenceを使用したエンティティBeanが含まれます。
EJBウィザードを開始するには、[ファイル]>[新規作成]>[ファイル]の順に選択して、作成するコンポーネントとしてEJBを選択します。すると、このウィザードによって、希望のEJBの種類を入力するよう求められます。
EJB 2.0プロジェクトの場合、CMPエンティティBeanのバージョンはどちらを選択しても構いません(ただし、2.x CMPが推奨されています)。CMPバージョンの選択は、cmp-version要素によってプロジェクトの展開記述子内に記録されます。
EJB 1.1プロジェクトでは、1.x CMPのみをサポートしています。
exteNd Director 開発環境には、既存のJ2EE 1.2プロジェクトを1.3に移行する場合に選択できる[プロジェクトバージョンの更新]コマンドが備わっています。ほとんどの種類のプロジェクトでは、このコマンドによって移行全体が行われます。場合によっては、移行のために一部手作業が必要になる旨が表示されることもあります。開発環境には、exteNd展開計画だけをJ2EE 1.2から1.3に更新するためのコマンドもあります。
1つまたは複数のプロジェクトを移行する場合は、次のトピックを参照してください。
この節では、プロジェクトを移行することが決定した場合に実行する手順について説明します。移行する場合や内容の基礎的な情報については、前の節を参照してください。
ナビゲーションペインの[プロジェクト]タブで、プロジェクト(SPF)ファイルを右クリックし、ポップアップメニューを表示します。
まず、更新ユーティリティでは、選択したSPFファイルのJ2EEバージョンをチェックします。すでにJ2EE 1.3に設定されている場合は、更新ユーティリティにより通知を受け、操作を続行するかどうかが尋ねられます。このようなプロジェクトの移行は、1.3に更新するJ2EE 1.2の項目(展開記述子、展開計画、またはサブプロジェクト)がプロジェクトに含まれる場合に適切です。更新ユーティリティでは、必要な項目のみを移行します。
SPFチェックに合格すると、プロジェクトに移行する前に確認を行うように更新ユーティリティよって要求されます。開発環境の初期設定でバックアップを有効にした場合にのみ、移行中に変更されたファイルがまずバックアップされます。
バックアップ機能を有効にする手順については、バックアップ初期設定を参照してください。
更新ユーティリティにより、プロジェクトがJ2EE 1.2から1.3に移行された後、次に関するステータス情報が表示されます。
このステータス情報は出力ペインの[出力]タブに表示されます。たとえば、次のとおりです。
EARプロジェクトを移行する場合、更新ユーティリティは自動的に、EARに含まれているJ2EEアーカイブサブプロジェクト(WAR、EJB、およびCAR)も移行します。更新ユーティリティのステータス情報画面には、移行に関する詳細情報も表示されます。
移行によるプロジェクトへの影響 プロジェクトを移行すると、更新ユーティリティでは、新しいJ2EEバージョンを反映するために、いくつかの箇所が変更されます。
exteNd Director 開発環境では、[プロジェクトバージョンの更新]コマンドに加え、J2EEプロジェクト(SPFファイル)のポップアップメニューに[展開計画バージョンの更新]コマンドが用意されています。[展開計画バージョンの更新]は、プロジェクトのexteNd展開計画のみを更新する点以外は、[プロジェクトバージョンの更新]と同じように機能します。
[展開計画バージョンの更新]は、(展開専用プロジェクトを含む)J2EE 1.2プロジェクトを、1.3展開計画を必要とするNovell exteNd Application Server 5.xに展開する場合に役立ちます。このコマンドを呼び出すと、これらのプロジェクトの配備計画が1.2から1.3形式に移行されます。ただし、他のプロジェクトの特性は変更されません。
[プロジェクトバージョンの更新]コマンドまたは[展開計画バージョンの更新]コマンドを使用して、特定の種類のプロジェクトを移行すると、展開ユーティリティでは、すべての問題を自動的に解決できない場合があります。その場合、手動でプロジェクトに行わなければならない変更についての情報が表示されます。
一般的に、CMPエンティティBeanを含むEJBおよびEARプロジェクトで、手動による移行の必要性が生じます。このようなプロジェクトに対してexteNd展開計画を更新する場合、更新ユーティリティでは、次のような一部の項目が処理されません。
更新された配備計画は、これらの項目を指定し、他にも変更が必要かどうかを確認するように編集する必要があります。
この節では、exteNd Application Server (特に、Novell exteNd Application Server 5.xおよびSilverStream eXtend Application Server 4.x)に固有のJ2EEバージョンの問題点について紹介します。プロジェクトを展開および移行する上で決定に役立つJ2EE 1.2および1.3のサーバの実装に関する次のような詳細が含まれます。
4.xおよび5.xサーバは、J2EE 1.3と互換性があります。このサポートを実装するために、Webコンテナ、クライアントコンテナ、およびEJBコンテナのJ2EE 1.3バージョンが提供されています。
J2EE 1.3のWebコンテナおよびクライアントコンテナは、J2EE 1.3プロジェクト(WAR 2.3、CAR 1.3)やJ2EE 1.2プロジェクト(WAR 2.2、CAR 1.2)を配備する場合に使用されます。
J2EE 1.3のEJBコンテナは、J2EE 1.3プロジェクト(EJB 2.0)を配備する場合や、(通常は)J2EE 1.2プロジェクト(EJB 1.1)を配備する場合に使用されます。
EJB 2.0をサポートするために導入されたコンテナ実装の変更により、一部のEJB 1.1展開では、EJBコンテナのJ2EE 1.3バージョンを使用できません。このような場合に備え、4.xサーバでは、このコンテナのJ2EE 1.2バージョンも用意されています。5.xサーバでは、この旧バージョンのEJBコンテナは提供されていないため、展開を行う前にこのようなプロジェクトを調整する必要があります。
次の表では、可能なプロジェクト配備のシナリオについてまとめ、それぞれのケースで使用される適切なコンテナのバージョンを示します。
プロジェクト |
配備計画 |
コンテナ |
---|---|---|
WAR 2.2 |
WAR 2.2 (4.xサーバのみ) |
J2EE 1.3 Webコンテナ |
WAR 2.2 |
WAR 2.3 |
J2EE 1.3 Webコンテナ |
WAR 2.3 |
WAR 2.3 |
J2EE 1.3 Webコンテナ |
CAR 1.2 |
CAR 1.2 (4.xサーバのみ) |
J2EE 1.3クライアントコンテナ |
CAR 1.2 |
CAR 1.3 |
J2EE 1.3クライアントコンテナ |
CAR 1.3 |
CAR 1.3 |
J2EE 1.3クライアントコンテナ |
EJB 1.1 |
EJB 1.1 (4.xサーバのみ) |
J2EE 1.2 EJBコンテナ |
EJB 1.1 |
EJB 2.0 (制約については、EJB配備の注記を参照) |
J2EE 1.3 EJBコンテナ |
EJB 2.0 |
EJB 2.0 (制約については、EJB配備の注記を参照) |
J2EE 1.3 EJBコンテナ |
EAR 1.2 |
EAR 1.2 (4.xサーバのみ) |
J2EE 1.3 Webコンテナ J2EE 1.3クライアントコンテナ J2EE 1.2 EJBコンテナ |
EAR 1.2 |
EAR 1.3 (制約については、EJB配備の注記を参照) |
J2EE 1.3 Webコンテナ J2EE 1.3クライアントコンテナ J2EE 1.3 EJBコンテナ |
EAR 1.3 |
EAR 1.3 (制約については、EJB配備の注記を参照) |
J2EE 1.3 Webコンテナ J2EE 1.3クライアントコンテナ J2EE 1.3 EJBコンテナ |
RAR 1.0 |
RAR 1.0 |
J2EE 1.3コンテナ |
一部の状況では、EJB 1.1プロジェクトをJ2EE 1.3 EJBコンテナに配備することを希望する(または必要とする)ことがあります。理由の1つは、このように配備することで、パフォーマンスを向上したり、新しいコンテナのバージョンに導入された他の実装の拡張機能を活用したりすることができるようになる点にあります。
セッションBeanまたはBMPエンティティBeanを含むEJB 1.1プロジェクトに対しては、EJB 2.0配備計画を作成するか、またはプロジェクトをJ2EE 1.3 EAR配備に含める必要があります。プロジェクトに対する他の変更は必要ありません。この簡単な方法は、SilverStream拡張機能を使用してCMPの詳細(式、外部Beanマッピング、複合フィールドなど)を指定するCMPエンティティBeanを含んだEJB 1.1プロジェクトでは使用できません。これらの拡張機能は、EJB 1.1配備計画ではサポートされていますが、2.0配備計画ではサポートされていません。
また、CMPエンティティBeanを含むEJB 2.0プロジェクトには、注意すべき制約もいくつかあります。そのようなプロジェクトでは、1.x CMPを使用したBeanで、EJB 2.0に固有な要素(抽象スキーマ名、ローカルインタフェース、およびクエリなど)が使用できません。さらに、(前に説明したように、EJB 2.0展開計画ではこれらのBeanがサポートされていないため)これらのBeanで、SilverStream拡張機能を使用してCMPの詳細を指定することはできません。
Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved. more ...