我試圖評估Glassfish 3.1上的CDI,即使我已經完成了使它工作良好,當我試圖拆分我的代碼在單獨的部署模塊中,我收到了一個奇怪的錯誤。更具體地說:GlassFish 3.1.1 b12上的CDI生成錯誤「WELD-001408不滿意的依賴項」
我有兩個類綁定在同一個實用程序項目(比如說CommonLib.jar
);類名是UserDatabase
和UserDatabaseEntityManager
,它們的定義如下(在本郵件末尾的PS中)。 我也有一個EJB3.1模塊的EAR。
當我選擇了CommonLib.jar
部署爲EAR的「捆綁庫」,然後我得到了以下錯誤:
Error occurred during deployment: Exception while loading the app :
WELD-001408
Unsatisfied dependencies for type [EntityManager
] with qualifiers [@UserDatabase
] at injection point [[field]@UserDatabase @Inject com.test.TestEJB.itemPersistenceEm
]. Please seeserver.log
for more details.
同樣的錯誤上面我也弄當我部署CommonLib.jar爲一個共享庫(在$glasshfish_installation_path/domains/domain1/lib
下複製的jar文件) 但是,如果我選擇在EJB項目中只有兩個類(UserDatabase
和UserDatabaseEntityManager
)(因此它們在EJB模塊中編譯),那麼注入工作正常。
我是否面臨類加載器問題?任何想法我怎麼能通過這個問題?
你只是挽救了我整個人生的一個夜晚。戰爭中包含的ejb-jar中的接口尚未解決5個小時。現在我可以回家了。我愛你。你願意嫁給我嗎? –