部署异常: WELD-001408:在<Class>注入点@Default限定符的类型依赖项未满足 [后备批注字段]



在无法找到答案的情况下注入 bean 时出现以下异常 和 bean.xml

包括在内:
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type CustomerAgreementDaoImpl with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject public com.evry.integrator.snow.fetch.CustomerAgreementFetcher.customerAgreementDaoImpl
at com.evry.integrator.snow.fetch.CustomerAgreementFetcher.customerAgreementDaoImpl(CustomerAgreementFetcher.java:0)
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:378)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:290)

以下是代码结构:

Beans.xml in/WEB-INF

<beans xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/beans_1_1.xsd"
version="1.1" bean-discovery-mode="all"> 
</beans>

接口

public interface GenericDao<T, PK> {
public interface CustomerAgreementDao extends GenericDao<CustomerAgreement, Long>{

实现通用DAO的Absract类

public abstract class GenericDaoImpl<T, PK> implements GenericDao<T, PK> {
@PersistenceContext(unitName = "IntegratorMasterdataDS")
protected EntityManager em;

主要实现

@Stateless
public class CustomerAgreementDaoImpl extends GenericDaoImpl<CustomerAgreement, Long> implements CustomerAgreementDao {
public CustomerAgreementDaoImpl() {
System.out.println("CustomerAgreementDaoImpl");
}

道用于服务类

@Stateless
public class CustomerAgreementFetcher {
@Inject
public CustomerAgreementDaoImpl customerAgreementDaoImpl;

主调度程序加载以上所有内容

@Startup
@Singleton
@AccessTimeout(value = 5, unit = TimeUnit.MINUTES)
public class WPoller {
@Inject
CustomerAgreementFetcher customerAgreementFetcher;

您可以将字段的类型更新为客户协议道接口吗?

@Stateless
public class CustomerAgreementFetcher {
@Inject
public CustomerAgreementDao customerAgreementDao;

相关主题:是否可以使用 CDI 注入 EJB 实现而不是其接口?

相关内容

  • 没有找到相关文章

最新更新