12 Java EEクライアント・アプリケーション・モジュールの使用
クライアント・モジュールは、EARのMETA-INF/application.xmlファイルで<java>
タグを使用して宣言します。『Oracle WebLogic Serverアプリケーションの開発』のエンタープライズ・アプリケーション・デプロイメント記述子要素に関する項を参照してください。
ノート:
<java>
タグを、サーバー側モジュールで使用できるJavaコードの宣言と混同しないよう注意してください。これは、その目的ではなく、サーバー側コンテナの外で実行するクライアント側コードを宣言する目的で使用します。
クライアント・モジュールは、基本的にはMETA-INF/application-client.xmlという特別なデプロイメント記述子を含むJARファイルです。このクライアントJARファイルのMETA-INF/MANIFEST.MFファイルには、プログラムのエントリ・ポイントを指定するMain-Classエントリも含まれます。application-client.xmlファイルの詳細は、「クライアント・アプリケーションのデプロイメント記述子の要素」を参照してください。
この章の内容は次のとおりです。
ノート:
Java Web Startを使用して、WebLogic ServerにデプロイされたJMSキューおよびトピックに接続する場合は、java.security.AccessControlException
を取得する可能性があります。セキュリティ障害を回避するには、クライアント側でシステム・プロパティ-Dweblogic.j2ee.client.isWebStart
をtrue
に設定する必要があります。
クライアント・アプリケーションの展開
weblogic.ClientDeployer
とweblogic.j2eeclient.Main
ユーティリティを使用して、クライアント・アプリケーションを抽出する方法を学習します。
WebLogic Serverは、クライアント・モジュールの使用を容易にするためのユーティリティを備えています。このようなユーティリティには以下の2つがあります。
-
weblogic.ClientDeployer
- EARからクライアント・モジュールを展開し、これを実行するための準備を行います。 -
weblogic.j2eeclient.Main
- クライアント・コードを実行します。
Java EE EARファイルからクライアント側JARファイルを展開して、デプロイ可能なJARファイルを作成するには、weblogic.ClientDeployer
ユーティリティを使用します。weblogic.ClientDeployer
クラスは、Javaコマンド・ラインで次の構文を使用して実行します。
java weblogic.ClientDeployer ear-file client1 [client2 client3 ...]
ear-file
引数は、拡張子.ear
を持つJavaアーカイブ・ファイルか、1つまたは複数のクライアント・アプリケーションJARファイルが格納されている展開されたディレクトリです。
client引数には、展開するクライアントを指定します。weblogic.ClientDeployer
ユーティリティは、ここに指定したクライアントごとに、指定した名前のJARファイル(拡張子.jarを含む)をEARファイル内から検索します。
たとえば、次のコマンドを考えます:
java weblogic.ClientDeployer app.ear myclient
このコマンドでは、app.earからmyclient.jarが展開されます。weblogic.ClientDeployer
ユーティリティでは、展開時に他の2つの操作も実行されます。
-
JARファイルにMETA-INF/application-client.xmlファイルが含まれていることを確認します。含まれていない場合は例外がスローされます。
-
myclient.runtime.xmlというファイルから読取りを行い、展開されたJARファイル内にweblogic-application-client.xmlファイルを作成します。このファイルは、
weblogic.j2eeclient.Main
ユーティリティで、クライアント・アプリケーションのコンポーネント環境(java:comp/env
)を初期化するために使用します。runtime.xmlファイルの形式の詳細は、「クライアント・アプリケーションのデプロイメント記述子の要素」を参照してください
ノート:
モジュールのMETA-INF/application-client.xmlデプロイメント記述子のエントリのバインディングを定義するには、クライアント・プログラムの<client>.runtime.xml記述子を作成します。
クライアント・アプリケーションの実行
weblogic.j2eeclient.Main
ユーティリティを使用してクライアント側JARファイルを抽出した後に、クライアント・アプリケーションを実行する方法を学習します。
EARファイルからクライアント側のJARファイルを展開したら、weblogic.j2eeclient.Main
ユーティリティを使用してクライアント側アプリケーションをブート・ストラップし、次のコマンドを使用してWebLogic Serverインスタンスを指すようにします。
java weblogic.j2eeclient.Main clientjar URL [application args]
たとえば:
java weblogic.j2eeclient.Main myclient.jar t3://localhost:7001
weblogic.j2eeclient.Main
ユーティリティによって、クライアント・コード内のjava:comp/env
からアクセス可能なコンポーネント環境が作成されます。
application-client.xml記述子に記述されているリソースが以下のいずれかに該当する場合、あらかじめmyclient.runtime.xmlファイルに指定された情報に基づいて、weblogic.j2eeclient.Main
クラスはサーバーのグローバルJNDIツリーからjava:comp/env
へのバインドが試行されます。
-
ejb-ref
-
javax.jms.QueueConnectionFactory
-
javax.jms.TopicConnectionFactory
-
javax.mail.Session
-
javax.sql.DataSource
ユーザー・トランザクションは、java:comp/UserTransaction
にバインドされます。
application.xmlデプロイメント記述子の<res-auth>
タグは、現時点では無視され、application
と入力されます。現時点では、フォームベースの認証はサポートされていません。
残りのクライアント環境は、weblogic.ClientDeployer
ユーティリティによって作成されたweblogic-application-client.xmlファイルからバインドされます。
バインディングが見つからない場合や不完全な場合は、weblogic.j2eeclient.Main
クラスからエラー・メッセージが出力されます。
環境が初期化されると、weblogic.j2eeclient.Main
ユーティリティがMain-Class
エントリのJARクライアントのJARマニフェストを検索します。このクラスのmainメソッドを呼び出すと、クライアント・プログラムが起動します。URL引数の後ろでweblogic.j2eeclient.Main
ユーティリティに渡したすべての引数は、クライアント・アプリケーションに渡されます。
アプリケーション用に作成したJavaクラス、およびそのアプリケーションが依存するすべてのJavaクラス(WebLogic Serverクラスを含む)は、クライアントJVMから使用できるようにしておく必要があります。クライアント・アプリケーションをステージするには、クライアントで必要とするすべてのファイルを特定のディレクトリにコピーし、そのディレクトリをJARファイルにバンドルします。クライアント・アプリケーション・ディレクトリの最上位には、アプリケーションを起動するためのバッチ・ファイルやスクリプトを格納できます。JavaクラスとJARファイルを保持するクラスまたは
サブディレクトリを作成し、起動スクリプトのクライアントクラスパス
に追加します。
Javaクライアント・アプリケーションにJRE (Java Runtime Environment)をパッケージ化することもできます。
ノート:
クライアント・モジュールJARで使用するクラスパス・マニフェスト・エントリは移植できません。これは、Java EE標準で未対応であるためです。