アプリケーションサーバのEJBアプリケーションやWebサービスにアクセスするクライアントマシン上で実行されるアプリケーションのことを、Java EEアプリケーションクライアントと呼びます。
本製品では、このJava EEアプリケーションクライアントを実行する実行環境として、アプリケーションクライアントコンテナを提供します。WebコンテナやEJBコンテナとは違い、アプリケーションクライアントコンテナは軽量のコンテナで、クライアントマシンで動作します。
Java EEアプリケーションクライアントは、mainメソッドを持っているため、通常のJava SEスタンドアロンアプリケーションと同様にjavaコマンドでも実行可能です。しかし、アプリケーションクライアントコンテナ上で動作させることで以下の利点があります。
Java EEアプリケーションクライアントが動作する前に、アプリケーションクライアントコンテナが自動的にクラスパスを設定します。また、アプリケーションクライアントコンテナ用のInterstage deployment descriptorファイル (glassfish-acc.xml)を使用して、Java EEアプリケーションクライアントの動作をカスタマイズできます。
Java EEアプリケーションクライアントでは、依存性の注入(Dependency Injection)を利用できます。Java EEアプリケーションクライアントが動作する前に、アプリケーションクライアントコンテナはアプリケーション内のアノテーションを読み込んでオブジェクトを注入します。アノテーションの利用については、「3.1.5 クライアントアプリケーションの作成方法」を参照してください。
Java EE規約では、deployment descriptorファイル (application-client.xml)にコールバックハンドラなどを指定できます。アプリケーションクライアントコンテナは定義された情報を元に、指定された処理をコールバックします。
また、deployment descriptorファイルに定義された情報を元に、JNDIのjava:comp環境ネーミングコンテキストを利用できます。
本説明では、アプリケーションクライアントコンテナ上で動作させるアプリケーションをJava EEアプリケーションクライアントと呼び、javaコマンドで実行するアプリケーションをJava SEスタンドアロンアプリケーションと呼びます。
注意
アプリケーションクライアントコンテナは、アプリケーションの処理に関わらずサーバのJNDIへの接続を必要とします。ファイアーウォールを跨り、サーバ上のアプリケーションを呼び出す場合、アプリケーションクライアントコンテナからサーバのIIOPリスナーポートへアクセスが許可されるようにファイアウォールの設定をする必要があります。ただし、このような設定はセキュリティ上のリスクが高く推奨しません。