EJB 3.0 - Context.Lookup加载适当的EJB Bean

时间:2018-06-11 16:13:13

标签: java ejb weblogic jndi web.xml

我正在研究EJB应用程序,并且我尝试使用查找方法,但它在运行时失败,

这是我的代码和配置:

weblogic.xml中

                    <ejb-reference-description>
                            <ejb-ref-name>
                                 RechercheClientSMBean
                            </ejb-ref-name>
                            <jndi-name>
                                *****-ejb/RechercheClientSMBean/local
                            </jndi-name>
                    </ejb-reference-description>

本地界面

        @Local
        public interface IRechercheClientFacade extends Facade {}

Bean实施

                    @Stateless(name="RechercheClientSMBean", mappedName="RechercheClientSMBean")
                    public class RechercheClientSMBean extends AbstractBean implements IRechercheClientFacade { }

的web.xml

                    <ejb-ref>
                        <ejb-ref-name>RechercheClientSMBean</ejb-ref-name>  
                        <ejb-ref-type>Session</ejb-ref-type>  
                        <home>com.*****.***.app.service.common.client.RechercheClientSMBean</home>  
                    </ejb-ref>

Bean查找代码

                        InitialContext ctx = new InitialContext();
                    iRechercheClientFacade= (IRechercheClientFacade)ctx.lookup("java:comp/env/RechercheClientSMBean");

导致以下异常:

  

weblogic.deployment.EnvironmentException:
  ejb-link&#39; RechercheClientSMBean&#39;在ejb-ref或ejb-local-ref&#39; RechercheClientSMBean&#39;中声明。在申请模块&#p; pfi.war&#39;无法解决。无法找到ejb-ref的目标EJB。请确保链接正确。

我检查了每个可能的配置,每个命名的可能性,但我一直遇到同样的问题。

PS :项目分为多个模块,查找方法是从web容器中完成的。

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

您是否尝试过以下方法: ctx.lookup(“ java:comp / env / ejb / RechercheClientSMBean”);