我有一个带有多个 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
重启了几次,删除generated,osgi-cache等都无济于事
最佳答案
最后我发现了问题:在 application.xml
中 module1
的定义偶尔会加倍:
<module>
<ejb>module1.jar</ejb>
</module>
...
<module>
<ejb>module1.jar</ejb>
</module>
删除重复后,JNDI 名称又正常了。
关于java - Glassfish 将字符串 "ejb"附加到特定 mobule 的 EJB 的 JNDI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12673246/