Java @ejb3.2中不存在ejb3.0的LocalBinding(jndiBinding=“sample/student”)

Java @ejb3.2中不存在ejb3.0的LocalBinding(jndiBinding=“sample/student”),java,ejb-3.0,jndi,wildfly-8,ejb-3.2,Java,Ejb 3.0,Jndi,Wildfly 8,Ejb 3.2,@ejb3.0中的LocalBindingjndiBinding=sample/student用于为ejbbean提供首选的JNDI名称 要使用定义的JNDI名称进行查找,使用的代码是 Context c = new InitialContext(); studentBean = (studentlBean) c.lookup("sample/student"); EJB3.2 wildfly 8应用服务器不支持如何在EJB3.2中以@LocalBinding的形式执行此操作。请帮助。我们通过

@ejb3.0中的LocalBindingjndiBinding=sample/student用于为ejbbean提供首选的JNDI名称

要使用定义的JNDI名称进行查找,使用的代码是

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

EJB3.2 wildfly 8应用服务器不支持如何在EJB3.2中以@LocalBinding的形式执行此操作。请帮助。

我们通过创建实用程序类和方法解决了这个问题,通过企业bean类计算正确的jndi名称。在这个方法中,我们在jndi树上行走,并检查它的每个实例。如果我们找到了所需类的实例,则将其返回给所请求的类。据我所知,javaee并没有给出另一个变量来使用jndi名称获取EJB实例。

在什么情况下,您必须执行jndi查找,而不是通过@EJB使用注入?例如,这样的情况:类中需要EJB实例,但不能对此类执行注入。这可能是应用程序架构的问题,但在现实生活中这种问题很常见。