我正在研究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容器中完成的。
非常感谢提前。
答案 0 :(得分:0)
您是否尝试过以下方法: ctx.lookup(“ java:comp / env / ejb / RechercheClientSMBean”);