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

带有限定符@Default的ZZZZ类型的不满意依赖项

姬俊远
2023-03-14

我有豆子如下所示。

@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个答案

袁元明
2023-03-14

问题在于@Singleton注释,即来自javax的注释。ejb而不是javax。注入。使用ejb one并将bean在CDI上下文上注册的接口定义为接口,而不是实现,更改代码:

@Inject
public CustomerService(EmailService mailService) {
    this.mailService = (DefaultEmailService) mailService;
}
 类似资料:
  • 我试图将给定类型的对象()注入运行在Wildfly 8.2内部的EJB中。但是,部署总是会失败,并显示消息 我试图用注释GreeterImpl和注入点,但这也不起作用。我错过了什么吗? 我的界面: My类(唯一实现的类): 我的EJB: 我是不是错过了CDI的一些东西?我需要at这样做有效吗? 编辑:我将把它作为部署到Wildfly,如果这很重要的话。

  • 问题内容: 我有以下代码来管理两种存储库。两个存储库类都继承一个接口,以允许对其资源进行重新初始化。 全局的,应用程序范围的存储库: 每个用户的会话范围的存储库: 当将此(无)注入上下文时 有用。但是,在添加到类中时,部署失败,并显示以下异常: 添加CDI bean的名称,例如 结果相同。唯一可以结合使用的方法是在var声明中使用该接口: 但是,我可能在这里需要子类功能,因此(现在)确实不需要使用

  • 我在JBoss上部署我的Java应用程序时遇到了一个愚蠢的问题。在我使用接口类更改源代码之前,一切都很好。所以这是我的问题: ... 在JBoss 7.1上部署时会出现以下错误: 10:05:34838错误[org.jboss.msc.service.fail](msc服务线程1-6)MSC00001:无法启动服务jboss。部署。单元“mdk-exchange-1.1.0.战争”。WeldSer

  • 在JBoss上部署我的Java应用程序时,我遇到了一个愚蠢的问题。在我使用接口类更改源代码之前,一切都很好。所以我的问题是: 10:05:34,838错误[org.jboss.MSC.service.fail](MSC服务线程1-6)MSC00001:无法启动服务jboss.deployment.unit。“MDK-Exchange-1.1.0.war”。WeldService:org.jboss

  • 我有以下代码来管理两种存储库。这两个存储库类都继承了一个接口,以允许重新初始化它们的资源。 全球应用范围回购: 每个用户,会话范围的回购: 将此(不带)注入上下文时 但是,当向UserRepository类添加时,部署失败,例外情况如下: 添加CDI bean的名称,如 会导致相同的异常。唯一与一起工作的是使用var声明中的接口: 然而,我可能需要子类功能,所以使用并不是真正需要的(目前)。 问题

  • 我在使用Arquillian测试JavaEE8应用程序时遇到了这个问题: WELD-001408:类型记录器与限定符@默认在注入点[BackedAnNotatedField]@注入私有academy.learnprogramming.services.TodoService的未满足依赖项。LOG 我对EntityManager也有同样的错误 以下是我的课程: TodoService。类(我必须测试