焊接在库jar中找不到CDI生产者方法

时间:2015-04-13 01:13:47

标签: cdi weld

使用Wildfly 8.2.0.Final,我相信使用了Weld 2.2,我在Maven多模块项目中用2个简单的类重现了这个问题。一个产生javax.ws.rs.client.Client,另一个产生相同的注入点。 Arquillian部署失败,WELD-001408:不满意的依赖项。 生产者在库jar中,包含在消费者的WEB-INF/lib中。制作人在beans.xmlMETA-INF discovery-mode=annotationWEB-INFdiscovery-mode=all mvn clean install

重现的步骤: 下载this project并从根目录运行beans.xml

这是一个严重的错误。有一些other SO帖子关于Weld不满意的依赖关系,但其中大多数都是因为beans.xml丢失了。使用CDI 1.2,{{1}}是可选的,尽管我的示例确实有几个。有什么想法吗?

完全披露:也发布在Weld论坛255328

1 个答案:

答案 0 :(得分:4)

经过几天尝试在另一个项目中重现问题,但是徒劳无功,我将原始项目缩减为CDI产品和消费者,并在JBoss论坛中发布了代码,并打开了JIRA WELD-1921。 Martin Kouba发现问题是由于使用了错误的Produces注释引起的!我没有javax.enterprise.inject.Produces而是javax.ws.rs.Produces。这显然不是故意的,当我在Eclipse中自动导入包并以某种方式选错了一个时,一定发生了! 还有一些其他问题,但我无法解决自己。非常感谢马丁。