簡體   English   中英

org.jboss.weld.exceptions.DeploymentException WELD-001409:帶有限定符的類型X的不明確的依賴關系@Default

[英]org.jboss.weld.exceptions.DeploymentException WELD-001409: Ambiguous dependencies for type X with qualifiers @Default

我按照文檔( https://docs.jboss.org/weld/reference/latest/en-US/html/injection.html )創建了限定符,現在我在wildfly-10.1.0中遇到了部署錯誤。最后,我在網上發了很多類似的問題,但仍然沒有線索。 代碼可以編譯和注入適用於其他類。

這是錯誤:

"{
    \"WFLYCTL0080: Failed services\" => {\"jboss.deployment.unit.\\\"test.war\\\".WeldStartService\" => \"org.jboss.msc.service.StartException in service jboss.deployment.unit.\\\"test.war\\\".WeldStartService: Failed to start service
    Caused by: org.jboss.weld.exceptions.DeploymentException: Exception List with 2 exceptions:
Exception 0 :
org.jboss.weld.exceptions.DeploymentException: WELD-001409: Ambiguous dependencies for type MessageSender with qualifiers @Default
  at injection point [BackedAnnotatedField] @Inject @B private test.AccessService.messageSenderB
  at test.AccessService.MessageSenderB(AccessService.java:0)
  Possible dependencies:
  - Managed Bean [class test.messagesender.impl.MessageSenderBImpl] with qualifiers [@Any @Default],
  - Managed Bean [class test.messagesender.impl.MessageSenderAImpl] with qualifiers [@Any @Default]

以下是課程:

@Qualifier
@Retention(RetentionPolicy.RUNTIME)
@Target({ TYPE, METHOD, PARAMETER, FIELD })
@Documented
public @interface A{}
@Qualifier
@Retention(RetentionPolicy.RUNTIME)
@Target({ TYPE, METHOD, PARAMETER, FIELD })
@Documented
public @interface B{}
public interface MessageSender {}
@Singleton
@A
public class MessageSenderAImpl implements MessageSender {}
@Singleton
@B
public class MessageSenderBImpl implements MessageSender {}
@Singleton
public class AccessService {
    @Inject
    @A
    private MessageSender messageSenderA;

    @Inject
    @B
    private MessageSender messageSenderB;

似乎第一次注射工作,第二次注射失敗。 任何想法?

我終於找到了。

愚蠢的IDE自動從spring框架導入了Qualifier類

import org.springframework.beans.factory.annotation.Qualifier;

認為正確使用的是

import javax.inject.Qualifier;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM