带有限定符@Default的ZZZZ类型的java未满足依赖项
我有下面给出的豆子
@Singleton
@DependsOn("DefaultEmailService")
public class CustomerService implements UserHandlingService {
private DefaultEmailService mailService;
@Inject
public CustomerService(DefaultEmailService mailService) {
this.mailService = mailService;
}
}
@Singleton
@Startup
public class DefaultEmailService implements EmailService {
public DefaultEmailService() {
}
}
我犯了这样的错误
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type DefaultEmailService with qualifiers @Default
at injection point [BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public com.project.service.CustomerService(DefaultEmailService)
at com.project.service.CustomerService.<init>(CustomerService.java:0)
我做错什么了吗
# 1 楼答案
问题在于
@Singleton
注释,即来自javax.ejb
而不是javax.inject
。使用ejb one并将您的bean在CDI上下文上注册的接口定义为接口,而不是实现,请更改代码: