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

2023-11-29

使用 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(使用前将#替换为@)

Weld 在库 jar 中找不到 CDI 生成器方法 的相关文章

随机推荐