使用 Wildfly 8.2.0.Final(我相信它使用 Weld 2.2),我在 Maven 多模块项目中使用 2 个简单的类重现了这个问题。一个产生一个javax.ws.rs.client.Client
,另一个有相同的注入点。 Arquillian 部署失败WELD-001408
: 不满足的依赖关系。
生产者位于一个库 jar 中,该库包含在WEB-INF/lib
对于消费者来说。制作人有一个beans.xml
in the META-INF
with discovery-mode=annotation
消费者有一个WEB-INF
with discovery-mode=all
.
重现步骤:
下载这个项目并运行mvn clean install
从根目录。
这是一个严重的错误。有一些other关于 Weld 不满足依赖关系的 SO 帖子,但大多数都是因为beans.xml
失踪。使用 CDI 1.2,beans.xml
是可选的,尽管我的示例确实有几个。有任何想法吗?
全面披露:也发布在 Weld 论坛中255328
经过几天的尝试在另一个项目中重现该问题,但徒劳无功,我将原始项目缩减为 CDI 生产者和消费者,并将代码发布在 JBoss 论坛中,并打开了 JIRA焊接-1921。 Martin Kouba 发现问题是由于使用错误造成的Produces
注解!代替javax.enterprise.inject.Produces
, I had javax.ws.rs.Produces
。这显然不是故意的,而且一定是在我在 Eclipse 中自动导入包并不知何故选择了错误的包时发生的!
还有一些其他问题,但没有什么是我自己解决不了的。非常感谢马丁。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)