我遇到了一個我似乎無法弄清楚的問題。我想注入一個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