この章では、次のTopLinkアプリケーションについてのデプロイ情報について説明します。
詳細は、次を参照してください。
JARファイルを作成し(「Javaアプリケーション」を参照)、クラスパスに配置します。
クライアント・アプリケーションからのTopLinkへのアクセスに関する詳細は、第75章「実行時のセッションの取得と使用」を参照してください。
WARファイルとJARファイル(「JavaServer Pagesおよびサーブレット・アプリケーション」を参照)を作成した後、それらのファイルからデプロイ用のEARファイルを作成します。EARをJSPサーブレット・サーバーにデプロイするには、EARを既知のディレクトリにコピーします。サーバー固有のデプロイ・ツールの使用が必要な場合もあります。詳細は、サーバーのドキュメントを参照してください。
クライアント・アプリケーションからのTopLinkへのアクセスに関する詳細は、「代替クラス・ローダーによるsessions.xmlからのセッションのロード」を参照してください。
WARファイルとJARファイル(「セッションBeanアプリケーション」を参照)を作成した後、それらのファイルからデプロイ用のEARファイルを作成します。EARファイルをJ2EEサーバーにデプロイするには、EARを通常使用されているディレクトリにコピーします。サーバー固有のデプロイ・ツールの使用が必要な場合もあります。詳細は、サーバーのドキュメントを参照してください。
クライアント・アプリケーションからのTopLinkへのアクセスに関する詳細は、「代替クラス・ローダーによるsessions.xmlからのセッションのロード」を参照してください。
オプションとして、「EJBのホット・デプロイ」も検討できます。
WARファイルとJARファイル(「CMPアプリケーション」を参照)を作成した後、それらのファイルからデプロイ用のEARファイルを作成します。EARファイルをJ2EEサーバーにデプロイするには、EARを通常使用されているディレクトリにコピーします。サーバー固有のデプロイ・ツールの使用が必要な場合もあります。詳細は、サーバーのドキュメントを参照してください。
この項の内容は次のとおりです。
サーバー固有の構成に関する詳細は、第7章「TopLinkとアプリケーション・サーバーの統合」を参照してください。
オプションとして、「EJBのホット・デプロイ」も検討できます。
CMPアプリケーションをOC4Jにデプロイする最も効率的な方法は、Oracle Enterprise Manager 10gを使用することです。詳細は、『Oracle Application Server管理者ガイド』を参照してください。
CMPアプリケーションをOC4Jへデプロイすると、次の処理が行われます。
OC4Jにより、Beanとその関連インタフェースに対して、部分的なEJB準拠チェックが実行されます。
OC4Jにより、セキュリティとトランザクションを管理する内部OC4Jクラスに加えて、Beanへのクライアント・アクセスを可能にするRMIスタブおよびスケルトンが作成されます。
TopLinkにより、Beanの具象サブクラスとEJBファインダ・メソッドの実装が作成されます。
TopLinkでのCMPサポートにより、BEA WebLogic Serverが統合されます。TopLinkのCMPをBEA WebLogicエンティティBeanに対して有効にするには、次のように、WebLogicのEJBコンパイラ(ejbc)を使用してEJB JARファイルをコンパイルします。
コマンドラインからejbcを実行します。EJB JARファイルをコマンドライン引数として指定します。ejbcにより、元のクラスと必要な生成済クラスおよびファイルをすべて含むEJB JARファイルが作成されます。
ejbcを実行すると、次の処理が行われます。
ejbcにより、Beanとその関連インタフェースに対して、部分的なEJB準拠チェックが実行されます。
ejbcにより、セキュリティとトランザクションを管理する内部BEA WebLogicクラスに加えて、Beanへのクライアント・アクセスを可能にするRMIスタブおよびスケルトンが作成されます。
TopLinkにより、Beanの具象サブクラスとEJBファインダ・メソッドの実装が作成されます。
ejbcの実行の詳細は、BEA WebLogic Serverのドキュメントを参照してください。
ejbcを起動すると、段階的にデータが処理されます。ejbcの実行中にエラーが発生した場合、どの段階が問題の原因になったかを特定してください。よくある問題を次に示します。
BeanのクラスがEJBの仕様に準拠していない。
クラスパスにクラスがない(すべてのドメイン・クラス、必要なTopLinkクラス、およびすべての必要なBEA WebLogicクラスがクラスパスに存在している必要があります)。
Javaコンパイラ(javac)での問題の発生。多くの場合、誤ったバージョンのJDKを使用したことが原因です。
RMIスタブおよびスケルトンの生成の失敗(RMIコンパイラ(rmic)の失敗)。
詳細は、第15章「アプリケーション・デプロイのトラブルシューティング」を参照してください。
TopLinkでのCMPサポートにより、IBM WebSphere Application Server 4.0が統合されます。アプリケーションをWebSphere Application Serverにデプロイするには、次の手順に従います。
TopLinkのWebSphere用デプロイ・ツールを使用して、EJB JARファイルをコンパイルします。詳細は、「WebSphereデプロイ・ツールの使用」を参照してください。
WebSphere Application Serverを起動します。
管理コンソールを起動し、コンパイル済のJARをデプロイします。
JARファイルのデプロイの詳細は、IBM WebSphere Application Serverのドキュメントを参照してください。
注意: エンティティBeanを含むアプリケーションをデプロイする場合、データ・ソースを設定してBeanに関連付けます。データ・ソースの作成および関連付けの方法の詳細は、IBM WebSphere Application Serverのドキュメントを参照してください。 |
デプロイはデプロイ・ツールを使用して実行するため、WebSphere Studio Application Developer(WSAD)でEJB JARファイルをデプロイする必要はありません(「WebSphereデプロイ・ツールの使用」を参照)。
WebSphere Application ServerとWSADのどちらでもBeanを起動できます。
IBM WebSphere Application ServerでBeanを起動する手順:
エンティティBeanを含むアプリケーションを選択します。
右クリックして「Start」を選択します。
Beanが正常に起動されると、メッセージ・ダイアログ・ボックスが表示されます。エラーが発生した場合は、第V部「TopLinkアプリケーションのトラブルシューティング」のトラブルシューティングの情報を参照してください。
WSADでBeanを起動する手順:
EJBプロジェクトを右クリックして「Run on Server」を選択します。
プロセスのステータスを表示するには、サーバー表示の「Console」タブを開きます。
WARファイルとJARファイルを作成した後、それらのファイルからデプロイ用のEARファイルを作成します。EARファイルをJ2EEサーバーにデプロイするには、EARを通常使用されているディレクトリにコピーします。サーバー固有のデプロイ・ツールの使用が必要な場合もあります。詳細は、サーバーのドキュメントを参照してください。
サーバー固有の構成に関する詳細は、第7章「TopLinkとアプリケーション・サーバーの統合」を参照してください。
オプションとして、「EJBのホット・デプロイ」も検討できます。
多くのJ2EEコンテナは、ホット・デプロイをサポートしています。これは、稼働中のサーバーへのEJBのデプロイを可能にする機能です。ホット・デプロイを使用すると、次のことを実行できます。
新たに開発したEJBを、稼働中の本番システムにデプロイする。
デプロイしたEJBを、稼働中のサーバーから削除(アンデプロイ)する。
Beanクラスの定義を更新することで、デプロイしたEJBの動作を変更(再デプロイ)する。
クライアントが、デプロイされていないBeanインスタンス、または再デプロイされたBeanインスタンスにアクセスしようとすると、デプロイ例外が発生します。クライアント・アプリケーションでは、例外を捕捉して処理する必要があります。
EJBのホット・デプロイを構成する方法は、デプロイしているJ2EEアプリケーションのタイプに依存します。
ホット・デプロイの詳細は、J2EEコンテナのドキュメントを参照してください。
CMPアプリケーションでホット・デプロイを利用する際は、次の点に注意してください。
同じEJB JARファイル内のすべての関連Bean(共通のTopLinkプロジェクトを共有するすべてのBean)をデプロイする必要があります。TopLinkでは、デプロイがプロジェクト・レベルで把握されるため、一部ではなくすべてのプロジェクトBeanをデプロイして、プロジェクト全体での一貫性を維持します。
Beanを再デプロイすると、そのTopLinkプロジェクトは自動的にリセットされます。その結果、オブジェクト・キャッシュがすべてフラッシュされ、プロジェクトに関連するアクティブ・オブジェクト・トランザクションがロールバックされます。
CMPではないアプリケーションでホット・デプロイを利用する際は、SessionManager
メソッドのgetSession
を該当する引数付きで使用して、TopLinkセッションをリフレッシュする必要があります(「クラス・ローダー変更時のセッションのリフレッシュ」を参照)。
このSessionManager
メソッドを使用しないでホット・デプロイ(またはホット再デプロイ)を行う場合、セッションの破棄またはリフレッシュは、アプリケーションで行う必要があります。
TopLinkのIBM WebSphere Server統合には、プロジェクトをWebSphere Application Serverにデプロイするためのデプロイ・ツールが含まれています。WebSphere用デプロイ・ツールは、WebSphereへのプロジェクトのデプロイをより簡単に構成して実行できる、グラフィカル・ツールです。このデプロイ・ツールには、ツールのグラフィカルなインタフェース要素を使用せずにプロジェクトをデプロイするためのコマンドライン・オプションも付属しています。
デプロイ・ツールは単独で(「デプロイ・ツールの単独使用」を参照)または、WebSphere Studio Application Developer(「デプロイ・ツールとWebSphere Studio Application Developerの併用」を参照)とともに使用できます。
JARファイルをデプロイするには、次の手順を実行します。
該当する<
TOPLINK_HOME
>/bin/wasDeployTool
スクリプトを実行してWebSphereデプロイ・ツールを起動します。Windowsでは、wasDeployTool.cmd
を実行し、UNIXではwasDeployTool.sh
を実行します。
WebSphereデプロイ・ツールのダイアログ・ボックスが表示されます(図10-1を参照)。
「Copy generated source to directory」オプションを有効にして、生成されたコードのコピーを指定のディレクトリに保存します。これは、WSADプロジェクトの作業ディレクトリにファイルをコピーするための簡単で効率的な方法です。
プロセスの詳細を表示するには、「Turn on tracing」オプションを有効にします。
「Deploy EJB Jar」をクリックします。
デプロイ・ツールは、WSADと互換性があります。
デプロイ・ツールからWSADへデプロイする手順:
WSADでEJBプロジェクトを選択し、デプロイおよびRMICコードの生成を選択します。
EJBプロジェクトをEJB JARファイルにエクスポートします。このとき、TopLinkプロジェクトとtoplink-ejb-jar.xml
ファイルを必ずEJB JARファイルに含めます。
該当する<
TOPLINK_HOME
>/bin/wasDeployTool
スクリプトを実行してWebSphereデプロイ・ツールを起動します。Windowsでは、wasDeployTool.cmd
を実行し、UNIXではwasDeployTool.sh
を実行します。
WebSphereデプロイ・ツールのダイアログが表示されます(図10-1を参照)。
WSADのデプロイ・コードがTopLinkのデプロイ・コードで上書きされるように、EJBプロジェクトの作業ディレクトリを選択します。
ソースがWSAD EJBプロジェクト・ディレクトリ以外のディレクトリにコピーされた場合は、プロジェクトのejbModuleディレクトリにあるWSAD EJBプロジェクトにソース・ファイルを手動でコピーします。
デプロイ・ツールのフィールドに適切なディレクトリを入力します。
「Deploy EJB JAR」を選択し、デプロイ済のEJB JARファイルを作成します。
「プロジェクト」メニューから「Rebuild all」を選択し、デプロイ・コードをコンパイルしてCMPを組み込みます。
デプロイ・ツールの使用時に発生する最も一般的なエラーは、NoClassDefFoundError
例外です。このエラー条件を解決するには、必要なリソースをクラスパスに追加します。「Turn on tracing」オプションも、デプロイ・コード生成中のエラーをデバッグする際に役立ちます。
スタブ生成フェーズで不明なエラーが発生した場合、Javaコマンドをコピーしてコマンド・プロンプトで実行します。そうすると、より詳細なエラー・メッセージが得られます。
詳細は、第7章「TopLinkとアプリケーション・サーバーの統合」を参照してください。