グラスフィッシュ組み込みサーバーで javaee6/ejb3.1 API を使用しています。私のアプリケーション構造は、ui-controller モジュール ejbs が biz-controller ejbs を呼び出します。グローバル JNDI 名の形式は java:global/myapp/mymodule/myejb です。
しかし、組み込みサーバーでアプリケーションをパッケージ化せずに両方のモジュールを単体テストしようとすると、一時フォルダーに関連する jndi の別のアプリケーション名を取得します ...
コンソール ログはこちらで確認してください。
生成された jndi 名は
java:global/ejb-app1138741107347091524/controllers/ArticleService
、テストを実行するたびに..
java:global/ejb-appXXXXXXXXXXXXXXXXXX/controllers/ArticleService
jndi 名の ejb-app 名の XXXXXXXX が変更されます...
FINE: [Application] -C:-DOCUME~1-daunddig-LOCALS~1-Temp-ejb-app1138741107347091524- , uid: 84898074169442304
Jan 19, 2011 6:26:46 PM com.sun.enterprise.deployment.Application setUniqueId
FINE: Ejb classes.jar:ArticleFacadeImpl id = 84898074169442304
Jan 19, 2011 6:26:46 PM com.sun.enterprise.deployment.Application setUniqueId
FINE: Ejb controllers-0_0_1-SNAPSHOT.jar:ArticleService id = 84898074169442305
Jan 19, 2011 6:26:46 PM com.sun.ejb.containers.BaseContainer initializeHome
INFO: Portable JNDI names for EJB ArticleFacadeImpl : [java:global/ejb-app1138741107347091524/ui-boundaries/ArticleFacadeImpl!dd.ecb.jee6.fa
cades.ArticleFacade, java:global/ejb-app1138741107347091524/ui-boundaries/ArticleFacadeImpl]
Jan 19, 2011 6:26:46 PM com.sun.ejb.containers.BaseContainer initializeHome
INFO: Portable JNDI names for EJB ArticleService : [java:global/ejb-app1138741107347091524/controllers/ArticleService!dd.ecb.jee6.services.i
mpl.ArticleService, java:global/ejb-app1138741107347091524/controllers/ArticleService]