WebSphere Application Server は、CommandTarget エンター プライズ Bean を提供しており、これによって管理者は CommandTarget を独自に実装しなくても、 指定されたサーバー内でコマンドを実行できます。EJBCommandTarget クラスは、 EJBCommandTarget Bean (CommandServerSessionBean) と共に、 WebSphere Application Server インストール・ディレクトリーの下の lib ディレクトリー内の EJBCommandTarget.jar ファイルに配置されています。これは、JAR ファイルとしてデプロイされます。 この JAR ファイルは新規アプリケーションで使用することも、既存のアプリケーションに追加することができます。
EJBCommandTarget target = new EJBCommandTarget(); MyCommand cmd = new MyCommandImpl(Arguments...); cmd.setCommandTarget(target); cmd.execute();
コード例では、クライアントは MyCommand オブジェクトを 作成します。次に、アプリケーション・サーバーで実行されます。execute メソッドが実行されると、 ターゲット (EJBCommandTarget) は InitialContext から CommandServerSessionHome をルックアップし、 CommandServerSessionBean 上で executeCommand メソッドを実行します。 EJBCommandTarget オブジェクトにより、余分なネーミングのルックアップを 避けるために、CommandServerSessionBean はオブジェクトごとに 1 つのみになります。
最初のコンストラクターにより、アプリケーションはネーミング・サーバー名および ポートを指定することができます。CommandServerSessionBean の JNDI 名も指定できます。 EJBCommandTarget は iiop://MyNamingServerName:PortNumber プロバイダー URL を構成し、 指定された JNDI 名で CommandServerSessionBean をルックアップします。任意のパラメーターについて、 NULL 値が受け渡される場合、サーバーおよびポートの WebSphere Application Server デフォルトおよび CommandServerSession のデフォルトの JNDI 名が使用されます。
2 番目のコンストラクターにより、アプリケーションは独自の初期コンテキストを 指定することができます。EJBCommandTarget オブジェクトは、この初期コンテキストを使用して、 指定された JNDI 名で CommandServerSession Bean をルックアップします。
3 番目の コンストラクターにより、アプリケーションはプロパティー・ファイル内でネーミング・サーバー (プロバイダー URL) をセットアップすることができます。
デフォルトのコンストラクターは、 プロバイダー URL のデフォルト値および CommandServerSession Bean (CommandServerSession) のデフォルトの JNDI 名を使用します。
EJBCommandTarget クラスを 使用する必要はありません。その代わりに、EJBCommandTarget Bean (CommandServerSessionBean) を使用する 独自のカスタム・ターゲット・ポリシーを作成できます。EJBCommandTarget オブジェクトは便利なクラスで、 ほとんどの使用シナリオのアドレス指定を試行します。