我遇到了一个我似乎无法弄清楚的问题。我想注入一个EJB到另一个像这样:Java EE,将一个EJB注入到另一个EJB中
@Stateless
public class MainEJB {
@EJB
private HelperEJB helper;
}
@Stateless
public class HelperEJB implements HelperInterface {
}
正如你所看到的,HelperEJB通过无接口视图暴露(注:HelperInterface
是从外部库的接口,它不是一个EJB接口)。这不工作,我会得到以下异常:
javax.naming.NamingException: Lookup failed for 'org.mycompany.ejb.HelperEJB #org.mycompany.ejb.HelperEJB'
但是,如果HelperEJB
没有实现任何接口:
@Stateless
public class HelperEJB {
}
它将工作。如果我在MainEJB和HelperEJB之间有一个@Local
接口,它也可以工作。
为什么这不能通过像我第一次尝试一样的无界面视图来完成?
谢谢,它确实有效。为什么?如果另一个EJB通过非接口视图注入,它必须被它的一个接口引用,如果它实现的话。 – Dario 2011-06-15 08:57:31
@Dario就像Arjan Tijms在他的帖子中所说的那样。 – deltaforce2 2011-06-15 09:08:06