WebSphere Liberty 8.5にデプロイされたear
アプリケーションがあります。このアプリケーションには、いくつかのEJBを宣言したEJBモジュールが含まれています。私のEJBは、次のように宣言されています:WebSphere LibertyでEJB JNDIバインディングを変更する方法
public interface MyEjb...
@Local
public interface MyEjbLocal extends MyEjb...
@Remote
public interface MyEjbRemote extends MyEjb...
@Stateless
public class MyEjbBean implements MyEjbLocal, MyEjbRemote...
私は、WebSphereリバティで見ることができるアプリケーションが起動するが、このEJBには、次のJNDI名を取得することをログインすると:私はこれらの名前を変更する必要が
java:global/my-ear-app-name/my-ejb-module-name/MyEjbBean!my.package.name.MyEjbLocal,
java:global/my-ear-app-name/my-ejb-module-name/MyEjbBean!my.package.name.MyEjbRemote
。私が正しく理解すれば、それはibm-ejb-jar-bnd.xml
ファイルで行うことができます。私はibm-ejb-jar-bnd.xml
ファイルをMETA-INF
ディレクトリのEJBモジュールjar
ファイルに持っています。このファイルには、次の設定が含まれています:
<session name="MyEjbBean" simple-binding-name="my/new/jndi/name"></session>
しかし、この構成では、何の効果もありません。私は耳のアプリケーションを起動したとき、私はまだログのデフォルトのJNDIバインディングを参照してください。
私はのエラーが表示されているので、<session>
タグで間違ったBean名を指定するとWebSphereログに警告が表示されるため、WebSphere Libertyが正しく選択したことがわかりました。
WebSphere LibertyでEJB JNDIバインディングを変更するにはどうすればよいですか?
これらの名前は、Java EE仕様で規定されています。なぜそれらを変更する必要がありますか?ここで何を達成しようとしていますか? –
@Steve実際のJNDIバインディングは次のようになります: 'java:global/my-ear-app-name-1.2.3/my-ejb-module-name-1.2.3/MyEjbBean!my.package.name.MyEjbLocal '。アプリケーション名とEJBモジュール名の両方に現在のバージョンが含まれています。そのため、バージョンが変わるたびにバインディングが変更されます。 – Alexey
さまざまなモジュールデプロイメント記述子(ejb-jar)のapplication.xmlおよび ' ... module-name>'の ' ... application-name> .xmlとweb.xml)。これらのDDにJava EE 7バージョンが含まれていることを確認してください。 –