アプリケーションでEJB3.1を使用しています。
アプリケーション内のあるEJBのJNDIルックアップ名を別のアプリケーションに送信して、実行時にそれを使用し、EJBと通信できるようにします。ルックアップ名はEJBコンテナにデプロイされたearファイルの名前に依存するため、これらのearファイルの名前は、アプリケーションで変更が行われるたびに変更されます。
プログラムで任意のEJBのルックアップ名を見つける手順は何ですか。
アプリケーションでEJB3.1を使用しています。
アプリケーション内のあるEJBのJNDIルックアップ名を別のアプリケーションに送信して、実行時にそれを使用し、EJBと通信できるようにします。ルックアップ名はEJBコンテナにデプロイされたearファイルの名前に依存するため、これらのearファイルの名前は、アプリケーションで変更が行われるたびに変更されます。
プログラムで任意のEJBのルックアップ名を見つける手順は何ですか。
まず第一に、私はそのアプローチをお勧めしません。EJBのJNDI名を修正してみませんか?
そうは言っても、メソッドInitialContext#list
を呼び出してJNDIツリーを反復処理し、EJBの名前を見つけることができます。ここに良いコード例があるので、繰り返しません。重要な注意事項-呼び出すctx.list("")
とJNDIツリーの最初のレベルしか得られないため、EJB名を取得するには、そのメソッドを再帰的に呼び出す必要があります。ヒント:EJBは通常、ブランチejbの下にデプロイされます。
参照: