我有一个 ear 文件,结构显示 ejb s内部:
project-ear
|-----project-business.jar
|-----SupervisorProcesserBean(class) (@Stateless)
|-----SupervisorProcesserBeanLocal(interface) (@Local)
|-----project-dao.jar
|-----SupervisorDAOImpl(class) (@Stateless)
|-----SupervisorDAOLocal(interface) (@Local)
这是我的 sustersordaoimpl bean:
@Stateless
public class SupervisorDAOImpl implements SupervisorDAOLocal {
@Override
public void doSomething() {
//do something
}
}
使用 sustersordaolocal 接口:
@Local
public interface SupervisorDAOLocal {
public void doSomething();
}
和我的 sustissorProcesserbean bean:
@Stateless
public class SupervisorProcesserBean implements SupervisorProcesserBeanLocal {
@EJB
private SupervisorDAOLocal supervisorDao;
....
}
使用 sustemorProcesserBeanLocal 接口:
@Local
public interface SupervisorProcesserBeanLocal {
....
}
您可以看到,我想注入 subsevisordaolocal sustemorPropesserbean 。当我想将其部署到 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.
怎么可能?两种豆都有本地接口。
jndi名称是使用远程接口的名称构建的,您似乎没有一个名称。将@local注释更改为@Remote,然后重试。