同一模块内企业 bean 的 JNDI 本地查找

JNDI local lookup for enterprise beans within the same module

以下是 Java EE 6 教程中关于 JNDI 本地查找的一些内容。

java:app 命名空间用于查找打包在同一应用程序中的本地企业 bean。也就是说,企业 bean 被打包在一个包含多个 Java EE 模块的 EAR 文件中。使用 java:app 命名空间的 JNDI 地址具有以下形式:

java:app[/模块名]/企业bean名[/接口名]

模块名称是可选的。仅当企业 bean 实现多个业务接口时才需要接口名称。

我的问题是:为什么模块名称是可选的?如果在两个不同的模块中有两个同名的enterprise bean怎么办?

如果部署 EAR,模块名称不是可选的。如果您直接部署 WAR 或 EJB JAR 而没有将其打包在 EAR 中,则模块名称将被省略,因为在这种情况下,只有一个模块,因此没有歧义。