gpt4 book ai didi

cdi - Weld 在库 jar 中找不到 CDI 生成器方法

转载 作者:行者123 更新时间:2023-12-03 09:21:34 28 4
gpt4 key购买 nike

使用 Wildfly 8.2.0.Final(我相信它使用 Weld 2.2),我在 Maven 多模块项目中用 2 个简单的类重现了这个问题。一个生成一个 javax.ws.rs.client.Client,另一个具有相同的注入(inject)点。 Arquillian 部署失败,并出现 WELD-001408:依赖关系不满足。生产者位于一个库 jar 中,该库 jar 包含在消费者的 WEB-INF/lib 中。生产者在 META-INF 中有一个带有 discovery-mode=annotationbeans.xml,而消费者在 WEB-INF 中有一个 beans.xml discovery-mode=all

重现步骤:下载this project并从根目录运行mvn clean install

这是一个严重的错误。有一些other关于 Weld 不满足依赖关系的 SO 帖子,但大多数是因为缺少 beans.xml 。对于 CDI 1.2,beans.xml 是可选的,尽管我的示例确实有几个。有什么想法吗?

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

最佳答案

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

关于cdi - Weld 在库 jar 中找不到 CDI 生成器方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29596548/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com