Glassfish 将字符串“ejb”附加到特定 mobule 的 EJB 的 JNDI

Posted

技术标签:

【中文标题】Glassfish 将字符串“ejb”附加到特定 mobule 的 EJB 的 JNDI【英文标题】:Glassfish appends a string "ejb" to JNDI of a particular mobule's EJBs 【发布时间】:2012-10-01 12:26:58 【问题描述】:

我有一个带有多个 EJB jar 的 EAR,例如:

module1.jar module2.jar

但是当我在日志中部署应用程序时,我可以看到module1.jar 的ejb-s 部署了一个奇怪的JNDI 名称:

EJB ejb1 的可移植 JNDI 名称:java:global/myappl/module1ejb/ejb1 EJB ejb2 的可移植 JNDI 名称:java:global/myappl/module1ejb/ejb2

但是其余的模块是定期部署的(没有ejb以模块名称结尾):

EJB ejb1 的可移植 JNDI 名称:java:global/myappl/module2/ejb1 EJB ejb2 的可移植 JNDI 名称:java:global/myappl/module2/ejb2

是什么让 Glassfish 附加以 JNDI 结尾的 "ejb"

Glassfish 版本:3.1.1

重启几次都没有用,delete generated,osgi-cache等

【问题讨论】:

【参考方案1】:

终于发现问题了:在application.xml定义中module1偶尔会翻倍:

<module>
    <ejb>module1.jar</ejb>
</module>
...
<module>
    <ejb>module1.jar</ejb>
</module>

删除重复后,JNDI 名称又正常了。

【讨论】:

以上是关于Glassfish 将字符串“ejb”附加到特定 mobule 的 EJB 的 JNDI的主要内容,如果未能解决你的问题,请参考以下文章

如何将 jar 部署到 glassfish,其中包含一个主要方法?

无效的ejb jar:它包含零ejb。

是否可以在 GlassFish 3.1 上为无状态 ejb Web 服务定义 servlet 过滤器

从EJB注入到servlet的NullPointerException

Glassfish JAX-WS 并排 SSL / 不安全的 EJB Web 服务

Glassfish中的Corba?