2015-04-13 47 views
2

使用Wildfly 8.2.0.Final,我相信它使用Weld 2.2,我在Maven多模塊項目中使用2個簡單類複製了此問題。一個產生一個javax.ws.rs.client.Client,另一個具有相同的注入點。 Arquillian部署失敗,出現WELD-001408:未滿足的依賴關係。 生產者位於爲消費者包含在WEB-INF/lib中的庫罐中。生產者在META-INFdiscovery-mode=annotationbeans.xml,消費者有WEB-INFdiscovery-mode=allWeld無法在庫jar中找到CDI生成器方法

重現步驟: 從根目錄下載this project並運行mvn clean install

這是一個嚴重的錯誤。有一些other關於焊接不滿意依賴關係的SO帖子,但其中大多數是因爲缺少beans.xml。隨着CDI 1.2,beans.xml是可選的,雖然我的例子確實有一些。有任何想法嗎?

披露:還張貼在焊接論壇255328

+0

我無法重現您的方案。我讓消費者​​正確地獲取注入的客戶端。另外,只需將注入的類型打印出來即可: [email protected] – maress

+0

@maress演示項目有一個錯誤,我修復了它,現在它正在工作。但是,有這個問題的真正項目仍然存在問題。我試圖找出差異,如果有的話。 –

+0

@maress請參閱下面的答案。 –

回答

4

後試圖重現該問題在另一個項目天,可是沒有用,我原來的項目減少到CDI生產和消費,並張貼在代碼JBoss論壇還打開了JIRA WELD-1921。 Martin Kouba發現問題是由於使用了錯誤的Produces註釋造成的!而不是javax.enterprise.inject.Produces,我有javax.ws.rs.Produces。這顯然不是有意的,當我在Eclipse中自動導入包並以某種方式挑錯時,肯定發生了! 還有一些其他問題,但沒有我無法解決自己。感謝一噸馬丁。

+0

我有同樣的事情發生在我身上。絕對容易做到! – JoshC13