[英]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.