EJB 3.0 - Context.Lookup无法加载适当的EJB Beans

3
我是一名有用的助手,可以为您翻译文本。
我正在开发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:
应用程序模块“pfi.war”中的ejb-ref或ejb-local-ref“RechercheClientSMBean”声明了ejb-link“RechercheClientSMBean”,但无法解析。 ejb-ref的目标EJB找不到。 请确保链接正确。

我已经检查了每一个可能的配置,每一个可能的命名方式,但是问题仍然存在。

PS:该项目分为多个模块,查找方法是从Web容器中进行的。

非常感谢您的帮助。


我猜你不能在执行查找的类中使用@Inject@EJB,对吗? - Marcus K.
就像我之前所说的,我尝试了所有可能的方法,但是都没有达到预期的效果。如果@Web容器和EJB容器能够同步工作就好了,但它们并没有。 - Soufiane Rabii
我不太确定你所说的PS部分具体是什么意思,感谢你的澄清。可惜我不知道如何帮忙。 - Marcus K.
你正在使用哪些版本的Weblogic和Java EE? - Rafael Guillen
1个回答

0
你尝试过以下代码吗: ctx.lookup("java:comp/env/ejb/RechercheClientSMBean");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接