使用Wildfly 8.2.0.Final,我相信使用了Weld 2.2,我在Maven多模块项目中用2个简单的类重现了这个问题。一个产生javax.ws.rs.client.Client
,另一个产生相同的注入点。 Arquillian部署失败,WELD-001408
:不满意的依赖项。
生产者在库jar中,包含在消费者的WEB-INF/lib
中。制作人在beans.xml
中META-INF
discovery-mode=annotation
,WEB-INF
,discovery-mode=all
mvn clean install
。
重现的步骤:
下载this project并从根目录运行beans.xml
。
这是一个严重的错误。有一些other SO帖子关于Weld不满意的依赖关系,但其中大多数都是因为beans.xml
丢失了。使用CDI 1.2,{{1}}是可选的,尽管我的示例确实有几个。有什么想法吗?
完全披露:也发布在Weld论坛255328
答案 0 :(得分:4)
经过几天尝试在另一个项目中重现问题,但是徒劳无功,我将原始项目缩减为CDI产品和消费者,并在JBoss论坛中发布了代码,并打开了JIRA WELD-1921。 Martin Kouba发现问题是由于使用了错误的Produces
注释引起的!我没有javax.enterprise.inject.Produces
而是javax.ws.rs.Produces
。这显然不是故意的,当我在Eclipse中自动导入包并以某种方式选错了一个时,一定发生了!
还有一些其他问题,但我无法解决自己。非常感谢马丁。