4

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

  • 模块1.jar
  • 模块2.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等都无济于事。

4

1 回答 1

4

最后我发现了问题:在application.xml定义中module1偶尔加倍:

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

删除重复项后,JNDI 名称再次正常。

于 2012-10-01T14:01:08.723 回答