![](/img/trans.png)
[英]WELD-001409: Ambiguous dependencies for type DataProvider with qualifiers @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.