【发布时间】:2014-01-27 14:53:45
【问题描述】:
我有一个 EAR 文件,结构显示里面的 EJB :
project-ear
|-----project-business.jar
|-----SupervisorProcesserBean(class) (@Stateless)
|-----SupervisorProcesserBeanLocal(interface) (@Local)
|-----project-dao.jar
|-----SupervisorDAOImpl(class) (@Stateless)
|-----SupervisorDAOLocal(interface) (@Local)
这是我的 SupervisorDAOImpl bean:
@Stateless
public class SupervisorDAOImpl implements SupervisorDAOLocal {
@Override
public void doSomething() {
//do something
}
}
使用它的 SupervisorDAOLocal 界面:
@Local
public interface SupervisorDAOLocal {
public void doSomething();
}
还有我的 SupervisorProcesserBean bean:
@Stateless
public class SupervisorProcesserBean implements SupervisorProcesserBeanLocal {
@EJB
private SupervisorDAOLocal supervisorDao;
....
}
使用它的 SupervisorProcesserBeanLocal 接口:
@Local
public interface SupervisorProcesserBeanLocal {
....
}
你可以看到,我想将 SupervisorDAOLocal 注入到 SupervisorProcesserBean。 当我想将其部署到 weblogic 时,我收到此错误:
Error resolving ejb-ref "com.viktor.business.SupervisorProcesserBean/supervisorDAO"
from module "project-war-1.0.0-SNAPSHOT.war" of application "project-ear-1.0.0-SNAPSHOT".
The ejb-ref does not have an ejb-link and the JNDI name of the target Bean has not been specified.
怎么可能?两个 bean 都有一个本地接口。
【问题讨论】:
-
你的 web.xml(在 WEB-INF 下)在你的战争中是什么样子的?听起来它缺少 ejb 信息。参考:docs.oracle.com/cd/E15051_01/wls/docs103/webapp/…
标签: maven ejb weblogic javabeans jndi