2010-08-04 18 views
1

我遇到焊接檢票的問題。當@注入從抽象類繼承的EJB時,如果我試圖從抽象類調用一個方法,我會得到一個ejb-ref錯誤。 但是,如果我從具體類中調用一個方法,那麼它完美地工作。我可以重寫方法並調用它們,並且我可以將重寫的方法委託給抽象類(具有重寫的方法調用super.method())並且可以工作。對抽象類有什麼配置嗎?從Wicket的超級/抽象類調用方法時,焊接注入失敗

謝謝。

回答

1

這是基於我與Seam的經驗猜測。 Weld注入一個包裝你的bean的代理。代理只攔截公共方法並將它們委託給底層bean(在你的情況下爲EJB)。當您在代理上調用受保護的方法或者從同一個包中的類調用包 - 私有方法時,該方法不會被攔截,並且會直接在導致錯誤的代理上調用該方法。爲了簡化故事,只需調用公共方法或通過接口備份所有依賴項並注入。

+0

感謝您的迴應,添加公共接口的工作方式與覆蓋該方法的工作方式相同,但公共接口無法擴展任何其他非常無用的接口,因爲我仍然需要複製代碼。 – kgrad 2010-08-04 12:40:09

+0

我從@Inject更改爲@EJB,它的工作原理非常完美,如果有人想寫出答案,我會接受它。 – kgrad 2010-08-04 13:34:39

相關問題