スタブ作成コマンド
createEJBStubs コマンドは、Java アーカイブ (JAR) ファイル、Web アプリケーション・アーカイブ (WAR) ファイル、またはエンタープライズ・アーカイブ (EAR) ファイルにパッケージされた Enterprise JavaBeans (EJB) Bean のリモート・インターフェースのスタブ・クラスを作成します。このコマンドはまた、ディレクトリーまたは JAR ファイルにあるインターフェース・クラスから単一のスタブ・クラスを作成するオプションも備えています。 生成されたスタブ・クラスをさまざまな方法でパッケージするために、いくつかのコマンド・オプションが用意されています。 詳しくは、『構文』および『例』のセクションを参照してください。
- createEJBStubs.bat - Windows プラットフォームの場合
- createEJBStubs.sh - UNIX ベースのプラットフォームの場合
- createEjbStubs - iSeries プラットフォームの場合
このコマンドは、入力 JAR、WAR、または EAR ファイルを検索し、リモート・インターフェースを備えた Bean を含む EJB モジュールを探します。リモート・インターフェースが見つかると、指定されたコマンド・オプションに従って、対応するスタブ・クラスが生成され、パッケージされます。 指定された入力が単一のインターフェース・クラスである場合、このツールは、このクラスが EJB リモート・インターフェース・クラスであると想定し、リモート・スタブ・クラスを生成します。
- 「そのままの」Java Standard Edition (SE) クライアント。ここでは、Java SE Java 仮想 マシン (JVM) がクライアント環境になります。
- EJB 3.0 のフィーチャー・パックが適用されていない、バージョン 7 よりも前のバージョン、または Java 7 アプリケーションに含まれていない、EJB 3.x より前のビジネス・インターフェースからの WebSphere Application Server コンテナー (Web コンテナー、 EJB コンテナー、またはアプリケーション・クライアント・コンテナー)。
- WebSphere Application Server 以外の環境。
createEJBStubs コマンドを実行する JVM では、java.io.tmpdir システム・プロパティーが定義されている必要があります。 このプロパティーでは、読み取り可能および書き込み可能の、存在しているディレクトリーを指定している必要があります。
このコマンドでは、EAR ファイルと JAR ファイル内にパッケージされた Bean コンテンツ用のスタブの作成に加えて、WAR ファイル内にパッケージされた Bean コンテンツ用のスタブも作成します。 EAR ファイルが入力ファイルとして指定され、その EAR ファイルにリモート・インターフェースのある WAR ファイルが含まれている場合、それらのインターフェースに対してスタブが生成されます。
スタブは、対応するリモート・インターフェースまたは Bean クラスと同じロケーション内にある WAR ファイルに配置されます。 対応するリモート・インターフェースまたは Bean クラスが WEB-INF/classes ディレクトリー構造に疎に配置されている場合、スタブも同様にそこに配置されます。 リモート・インターフェースまたは Bean クラスが WEB-INF/lib ディレクトリーにある JAR ファイルの内部にパッケージされている場合、スタブは同じ JAR ファイル内に挿入されます。 スタブが WAR ファイル内部にパッケージされていないリモート・インターフェースに対して生成される場合は、そのスタブは WEB-INF/classes ディレクトリー構造に疎に配置されます。
クライアント・コンポーネントは、これらのスタブを使用してサーバー内で実行されている EJB コンポーネントと通信します。クライアント・コンポーネントは、正しいツールで作成されたスタブのインスタンスを使用する必要があります。
構文
createEJBStubsinput_ class_ name | input_JAR_name | input_WAR_name | input_EAR_name [-help] [-newfile[new_file]] [-updatefile[update_file]] [-quiet] [-verbose] [-logfile log_file] [-appendlog] [-cp class_path] [-trace]- createEJBStubs
- これは、単一のインターフェース・クラス・ファイル、JAR ファイル、WAR ファイル、または EAR ファイル用の EJB スタブ・クラスを作成するコマンドです。どの引数も指定しないで、あるいは –help のみを指定して createEJBStubs コマンドを呼び出すと、指定可能なオプションのリスト、および詳しい説明を含む呼び出し例が表示されます。
- input_class_name または input_EAR_name または input_JAR_name または input_WAR_name
最初のパラメーターはこのコマンドの必須エレメントです。これには、処理対象のソース・クラス・ファイル、JAR、WAR、または EAR ファイルが含まれている必要があります。
このパラメーターは、単一インターフェース・クラスの完全修飾名 (例えば、com.ibm.myRemoteInterface) にすることができます。 パッケージ名セグメントは「.」文字で区切り、クラス名の前にパス名を付けず、「.class」拡張子を含めないようにする必要があります。 このインターフェース・クラス入力の場合、クラスパス・オプション (例えば、-cp my_path、または -cp my_path/my_interfaces.jar) を使用して、インターフェース・クラスがある場所を指定する必要があります。生成されたスタブ・クラスは、コマンドが呼び出される現行ディレクトリーから開始される、パッケージで定義されたディレクトリー構造内に置かれます。
このパラメーターは JAR、WAR、または EAR ファイルであってもかまいません。その場合、パスを指定する必要があります (例えば、my_path/my_Server_App.ear)。生成されたスタブ・クラスは、-updatefile オプションが指定されているかどうかに応じて、Bean と同じ、またはリモート・インターフェース・クラスと同じ 1 つまたは複数のモジュールに置かれます。詳しくは、以下のセクションを参照してください。
- -help
- 指定可能なオプションのリスト、および詳しい説明が示された呼び出し例を含む、コマンド構文を表示します。
- -newfile [new_file]
- 入力 JAR、WAR、または EAR およびスタブ・クラス内に元のファイルが入った、新規ファイルを生成することを要求します。このオプションが指定されなかった場合、スタブは、元の JAR、WAR、または EAR ファイルに書き込まれます。このオプションが指定されたが、new_file 名が指定されなかった場合、新規ファイル名は、入力 JAR、WAR、または EAR ファイル名に「_withStubs」を追加したものになります。このオプションは、最初の入力パラメーターがインターフェース・クラスである場合には指定できません。
- -updatefile [update_file]
- 2 番目のファイル (例えば、入力ファイルに追加して指定された場合) をスタブ・クラスで更新することを要求します。 このオプションでは、別のパッケージ化の動作も指定されます。 スタブ・クラスは、リモート・インターフェース・クラスと同じ 1 つまたは複数のモジュールにパッケージされます。 これに対して、このオプションが指定されなかった場合、スタブ・クラスは、Bean クラスと同じ 1 つまたは複数のモジュールにパッケージされます。 このオプションが指定されたが、update_file 名が指定されなかった場合、元の JAR、WAR、または EAR ファイルのみがスタブ・クラスで更新されます。このオプションは、最初の入力パラメーターがインターフェース・クラスである場合には指定できません。
- -quiet
- メッセージの抑止を要求します。 -quiet オプションは、–verbose または –trace オプションと一緒に指定することはできません。これを指定した場合にも、エラー・メッセージは表示されます。
- -verbose
- 追加の通知メッセージの出力を要求します。 –verbose オプションは、-quiet または –trace オプションと一緒に指定することはできません。
- -logfile log_file
- コンソールに加えてログ・ファイルにもメッセージを出力することを要求します。 このオプションを指定した場合には、log_file 名も指定する必要があります。
- -appendlog
- メッセージを既存のログ・ファイルに追加することを要求します。 このオプションを指定した場合には、-logfile オプションも指定する必要があります。
- -cp class_path
- クラス・ローダーで追加のクラス・ファイルまたは JAR ファイルが入るクラスパスを指定することを要求します。これらのファイルは、リモート・インターフェース・クラスをロードするために必要です。クラスパスには複数のセグメントを含めることができます。その場合、各パスは、オペレーティング・システムのデフォルトのパス区切り文字によって、前のパスから区切ります。各パスでは、JAR ファイルまたはディレクトリーを指定することができます。このオプションを指定した場合には、class_path 名も指定する必要があります。
- -trace
- 詳しいトレース出力の生成を要求します。これは、IBM® サービスが問題を解決するために使用する情報の収集を目的としています。トレース出力は英語でのみ表示されます。 このオプションは、–quiet または –verbose オプションと一緒に指定することはできません。
例
createEJBStubs com.ibm.myRemoteInterface -cp my_path
1 つのリモート・インターフェース・クラス用のスタブ・クラスを生成し、それを、現行ディレクトリーから始まる、パッケージで定義されたディレクトリー構造に配置します。 my_path ディレクトリーはクラスパスとして使用されます。処理対象のリモート・インターフェース・クラスが JAR ファイル内にある場合、クラスパス仕様として –cp my_path/my_interfaces.jar 構文を使用する必要があります。createEJBStubs my_path/my_beans.jar -newfile –quiet
my_beans.jar ファイル内にある、リモート・インターフェースを持つすべてのエンタープライズ Bean のスタブ・クラスを生成します。オプションの new_file 名パラメーターが –newfile オプションと一緒に指定されていないため、生成されたスタブ・クラスと元の JAR ファイルの両方のコンテンツが、「my_beans_withStubs.jar」という名前の新規 JAR ファイルにパッケージされます。 エラー通知を除き、出力メッセージは抑止されます。createEJBStubs my_path/my_Server_App.ear -logfile myLog.out
my_Server_App.ear ファイル内にある、リモート・インターフェースを持つすべてのエンタープライズ Bean のスタブ・クラスを生成します。–newfile オプションが指定されていないため、生成されたスタブ・クラスは元の EAR ファイルに置かれます。 –updatefile オプションが指定されていないため、スタブ・クラスは、Bean クラスと同じ 1 つまたは複数のモジュールにパッケージされます。 メッセージは、myLog.out ログ・ファイルとコマンド・ウィンドウの両方に書き込まれます。createEJBStubs my_path/my_Server_App.ear -updatefile my_path/my_Client_interfaces.jar
my_Server_App.ear ファイル内にある、リモート・インターフェースを持つすべてのエンタープライズ Bean のスタブ・クラスを生成します。生成されたスタブ・クラスは元の EAR ファイルと my_Client_interfaces.jar ファイルの両方に置かれます。 –updatefile オプションが指定されているため、スタブ・クラスは、リモート・インターフェース・クラスと同じ 1 つまたは複数のモジュールにパッケージされます。createEJBStubs my_path/my_Server_App.ear –updatefile
my_Server_App.ear ファイル内にある、リモート・インターフェースを持つすべてのエンタープライズ Bean のスタブ・クラスを生成します。オプションの update_file 名パラメーターが –updatefile オプションとともに指定されていないため、生成されたスタブ・クラスは元の EAR ファイルのみに置かれます。 -updatefile オプションが指定されているため、スタブ・クラスは、リモート・インターフェース・クラスと同じ 1 つまたは複数のモジュールにパッケージされます。createEJBStubs my_path/my_beans.war
WAR ファイル内にパッケージされ、リモート・インターフェースを持つすべての Bean のスタブ・クラスを生成します。Bean1 クラスは、WEB-INF/classes ディレクトリー構造に疎にパッケージされます。したがって、対応するスタブも同様にそこに配置されます。 同様に、Bean2 クラスは WEB-INF/lib ディレクトリーにある myEJB.jar ファイルの内部にパッケージされるため、対応するスタブはその JAR ファイル内に挿入されます。