繁体   English   中英

在 Weblogic 10.xx 上使用 InitialContext 查找 EJB

[英]Lookup EJB using InitialContext on Weblogic 10.x.x

你能告诉我如何在 Weblogic 上查找 EJB 吗?
我有以下豆:

@Stateless
@EJB(name = "DataAccess", beanInterface = DataAccessLocal.class)
public class DataAccess implements DataAccessLocal {
    ...
}

我在其他 class 中需要这个 bean,它不是托管内容的一部分(只是简单的类),所以我想应该这样做:

DataAccessLocal dataAccess = DataAccessLocal.class.cast((new InitialContext()).lookup("%SOME_JNDI_NAME%"));

问题是在 Weblogic 10.xx AS 的情况下应该使用什么作为 %SOME_JNDI_NAME%?
任何帮助将不胜感激。

我会将您的 EJB class 更新为如下所示:

@Stateless(name="DataAccessBean", mappedName="ejb/DataAccessBean")
@Remote(DataAccessRemote.class)
@Local(DataAccessLocal.class)
public class DataAccess implements DataAccessLocal, DataAccessRemote {
    ...
}

从部署在同一 EAR 中的 class 中查找 EJB(使用本地接口):

InitialContext ctx = new InitialContext(); //if not in WebLogic container then you need to add URL and credentials.
// use <MAPPED_NAME>
Objet obj = ctx.lookup("java:comp/env/ejb/DataAccessBean");

通常首选 EJB 注入,您可以按如下方式进行:

@EJB(name="DataAccessBean")
DataAccessLocal myDataAccessBean;

如果您尝试远程使用 EJB,则需要使用远程接口和以下 JNDI 名称:

DataAccessBean#<package>.DataAccessRemote

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM