当前位置: 首页 > 知识库问答 >
问题:

Weld无法在库jar中找到CDI生产者方法

陆海阳
2023-03-14

使用野蝇8.2.0。最后,我相信使用焊接2.2,我已经在Maven多模块项目中用2个简单的类重现了这个问题。一个产生一个javax.ws.rs.client.Client,另一个产生一个注入点。Arquillian部署失败与WELD-001408:不满足的依赖关系。生产者位于包含在消费者的WEB-INF/lib中的库jar中。生产者在META-INF中有一个beans.xml,其中发现模式=注释,消费者在WEB-INF中有一个发现模式=all

复制步骤:下载此项目并从根目录运行mvn clean install

这是一个关键错误。还有一些关于Weld未满足依赖关系的SO帖子,但大多数都是因为bean。缺少xml。使用CDI1.2,bean。xml是可选的,尽管我的示例中有两个。有什么想法吗?

完全披露:也张贴在焊接论坛255328

共有1个答案

张银龙
2023-03-14

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

 类似资料:
  • 我在这里的部分问题是使用正确的词汇,所以我提前为可能是一个简单的术语问题道歉。 假设我有一个接口和一个实现该接口的类。 进一步假设我在某个地方有一个生产者方法(注释为),它返回一个。在内部,它返回一个新的,但这既不是这里也不是那里。 最后,假设我有另一个CDIBean,其注入点定义如下: 假设我有所有的文件就位等,并具有自举焊接或其他符合CDI-1.0的环境,因此我将得到一个不明确的定义错误。这很

  • 生产者方法对于以编程方式创建实例并在上下文中发布它们非常有用。问题是由创建并由生产者方法返回的实例的所有属性都不是由CDI注入的。在焊接留档中,我读到这是一种有意的行为,但在许多情况下,注入这些豆子会非常有用。 是否有一个变通方法来允许注入到这样的bean中?

  • 有人能解释一下CDI范围注释在生产者中的作用吗?他们似乎什么也做不了。 这些,自然地,在启动时给出了这个(省略的)错误。 WELD-001409:类型的依赖关系不明确。可能的依赖关系: 带有限定符[@Any@Default]的生产者方法[Thing]声明为[[BackedAnnotatedMethod]@生成公共pkg。测验东西制作人。thingMaker(), 因此,尽管“RequestScop

  • 我试图写一个简单的例子,在CDI 2.0的JavaSE中使用生产者方法,但是遇到了一个问题。 以下是制作人: 这是注射点: 我通过如下方式引导运行示例: 我有一颗豆子。xml文件。 例外情况是: 线程“main”组织中出现异常。jboss。焊接例外情况。DeploymentException:WELD-001408:在注入点[BackedAnnotatedField]@InjectPrivate

  • 第二台运行linux或windows的机器(双引导),带有生成程序: 在server.properties上尝试了一些配置: 1 listeners=plaintext:\0.0.0.0:9092已播发。listeners=plaintext:\something:9092 第二台机器上的生产者: 在windows上工作,在linux上不工作 3#Listeners=#Advertised.Lis

  • 我创建了一个简单的Kafka生产者 启动捆绑包时,遇到以下错误: 我已尝试设置和如下所示: 也喜欢,但还是出现了同样的错误。我在这里做错了什么。