2012-02-04 39 views
1

我有一個多模塊項目,其中在項目bar的EJB BarServiceFooService EJB在foo項目。 @EJB註釋用於注入EJB。「不明確的EJB參考‘beanName’或更精確的‘beanInterface’應被指定的」

@EJB 
private FooService fooService; 

我使用IntellijIDEA 11,並抱怨與

'曖昧EJB參考 「beanName」 或更精確的 「beanInterface」 應規定'。

此錯誤僅顯示在不同模塊中的EJB引用。如果按照建議使用beanName,則錯誤消失。但是我不想使用它,因爲它很難重構組件名稱,因爲它是一個字符串。

這是IDEA中的錯誤,還是我想在這裏做一些錯誤?

(注意到thisthis在JetBrains論壇上詢問完全相同的問題,但沒有回覆可悲)。

+0

IntelliJ也會重構beanName。 – zellus 2012-07-24 05:08:08

回答

3

javax.ejb.EJB的Javadoc在這一點上有些含糊:如果沒有提供明確的鏈接信息,並有相同的應用程序暴露出匹配 客戶視圖類型中只有一個 會話bean

,默認情況下,EJB依賴關係解析爲該會話bean。

這個上下文中的應用程序是指「EJB模塊」還是「EAR」,這是值得商榷的,所以我不一定認爲IDEA是可以責怪的。我對其他供應商並不熟悉,但在考慮EAR中所有模塊中的所有EJB之前,至少WebSphere Application Server將嘗試在客戶機EJB/WAR模塊中消除歧義。

+0

感謝您的答案bkail。我想我們必須忍受這種輕微的滋擾。 – Asa 2012-02-09 02:47:08