2013-03-10 11 views
5

私のアプリケーションでEJB 3.1を使用しています。EJBのJNDIルックアップ名をプログラムで見つける方法は?

アプリケーションでEJBのJNDIルックアップ名を別のアプリケーションに送信して、実行時にそれを使用できるようにしたいのですが、&はEJBと通信します。ルックアップ名はEJBコンテナ&にデプロイされたearファイルの名前に依存するため、アプリケーションで変更が行われるたびにこれらのearファイルの名前が変更されます。

任意のEJBのルックアップ名をプログラムで見つけ出す手順はなんですか?

答えて

4

まず、私はこのアプローチをお勧めしません。なぜあなたのEJBのJNDI名を修正しないのですか?

つまり、メソッドInitialContext#listを呼び出してJNDIツリーを反復し、EJBの名前を調べることができます。良いコード例hereがありますので、私はそれを繰り返さないでください。重要な注意 - ctx.list("")を呼び出すと、第1レベルのJNDIツリーしか得られないので、EJB名を取得するためには、そのメソッドを再帰的に呼び出す必要があります。ヒント:EJBは通常、ブランチejbの配下にデプロイされます。

も参照してください:

関連する問題