2016-11-30 17 views
1

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バインディングを変更するにはどうすればよいですか?

+1

これらの名前は、Java EE仕様で規定されています。なぜそれらを変更する必要がありますか?ここで何を達成しようとしていますか? –

+0

@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

+2

さまざまなモジュールデプロイメント記述子(ejb-jar)のapplication.xmlおよび ' ...'の ' ... .xmlとweb.xml)。これらのDDにJava EE 7バージョンが含まれていることを確認してください。 –

答えて

関連する問題