6

アプリケーションでEJB3.1を使用しています。

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

プログラムで任意のEJBのルックアップ名を見つける手順は何ですか。

4

1 に答える 1

6

まず第一に、私はそのアプローチをお勧めしません。EJBのJNDI名を修正してみませんか?

そうは言っても、メソッドInitialContext#listを呼び出してJNDIツリーを反復処理し、EJBの名前を見つけることができます。ここに良いコード例があるので、繰り返しません。重要な注意事項-呼び出すctx.list("")とJNDIツリーの最初のレベルしか得られないため、EJB名を取得するには、そのメソッドを再帰的に呼び出す必要があります。ヒント:EJBは通常、ブランチejbの下にデプロイされます。

参照:

于 2013-03-11T11:34:11.147 に答える