2011-12-03 19 views
3

我試圖評估Glassfish 3.1上的CDI,即使我已經完成了使它工作良好,當我試圖拆分我的代碼在單獨的部署模塊中,我收到了一個奇怪的錯誤。更具體地說:GlassFish 3.1.1 b12上的CDI生成錯誤「WELD-001408不滿意的依賴項」

我有兩個類綁定在同一個實用程序項目(比如說CommonLib.jar);類名是UserDatabaseUserDatabaseEntityManager,它們的定義如下(在本郵件末尾的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 see server.log for more details.

同樣的錯誤上面我也弄當我部署CommonLib.jar爲一個共享庫(在$glasshfish_installation_path/domains/domain1/lib下複製的jar文件) 但是,如果我選擇在EJB項目中只有兩個類(UserDatabaseUserDatabaseEntityManager)(因此它們在EJB模塊中編譯),那麼注入工作正常。

我是否面臨類加載器問題?任何想法我怎麼能通過這個問題?

回答

0

聽起來就像您遇到了我們發現的一些Glassfish CDI集成問題while working on Seam 3。它可能是其中的幾個,所以你必須看看它可能是哪一個。嘗試在JBoss AS7或Apache TomEE上測試,看看你是否仍然有問題。

3

只是一個猜測,因爲我前幾天遇到Glassfish和CDI一個非常類似的問題:你有一個beans.xml JAR,即在CommonLib.jar和EJB JAR,使CDI可以掃描的他們?

我的問題是由於我認爲將一個beans.xml放入EAR中就足夠了,而事實並非如此。

+1

你只是挽救了我整個人生的一個夜晚。戰爭中包含的ejb-jar中的接口尚未解決5個小時。現在我可以回家了。我愛你。你願意嫁給我嗎? –

相關問題