kar*_*nov 6 java lookup ejb weblogic initial-context
你能告诉我如何在Weblogic上查找EJB吗?
我有以下bean:
@Stateless
@EJB(name = "DataAccess", beanInterface = DataAccessLocal.class)
public class DataAccess implements DataAccessLocal {
...
}
Run Code Online (Sandbox Code Playgroud)
我在其他类中需要这个bean,它不是托管内容的一部分(只是简单的类),所以我想它应该这样做:
DataAccessLocal dataAccess = DataAccessLocal.class.cast((new InitialContext()).lookup("%SOME_JNDI_NAME%"));
Run Code Online (Sandbox Code Playgroud)
问题是在Weblogic 10.xx AS的情况下应该使用%SOME_JNDI_NAME%?
任何帮助将不胜感激.
我会将您的EJB类更新为如下所示:
@Stateless(name="DataAccessBean", mappedName="ejb/DataAccessBean")
@Remote(DataAccessRemote.class)
@Local(DataAccessLocal.class)
public class DataAccess implements DataAccessLocal, DataAccessRemote {
...
}
Run Code Online (Sandbox Code Playgroud)
从部署在同一EAR中的类(使用本地接口)查找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");
Run Code Online (Sandbox Code Playgroud)
EJB注入通常是首选,您可以按如下方式执行:
@EJB(name="DataAccessBean")
DataAccessLocal myDataAccessBean;
Run Code Online (Sandbox Code Playgroud)
如果您尝试远程使用EJB,则需要使用远程接口和以下JNDI名称:
DataAccessBean#<package>.DataAccessRemote
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13586 次 |
| 最近记录: |