EJB 3.0 的 @LocalBinding(jndiBinding="sample/student") 在 EJB 3.2 中不存在

@LocalBinding(jndiBinding="sample/student") of EJB 3.0 not present in EJB 3.2

@LocalBinding(jndiBinding="sample/student") 在 EJB 3.0 中用于为 EJB bean 提供首选的 JNDI 名称。

并使用定义的 JNDI 名称查找,使用的代码是

Context c = new InitialContext();
studentBean = (studentlBean) c.lookup("sample/student");

如何在 EJB 3.2 中执行此操作,因为 @LocalBinding 在 EJB3.2 wildfly 8 应用程序服务器中不受支持。请帮忙。

我们已经通过创建实用程序 class 和方法解决了这个问题,通过 Enterprise bean class 计算正确的 jndi 名称。在这个方法中,我们遍历 jndi 树,并检查它的每个实例。如果我们找到所需 class 的实例,则 return 将其传递给所要求的 class。据我所知,javaee 没有提供其他变体来通过 jndi 名称获取 EJB 实例。