【问题标题】:Unsatisfied dependencies for type X with qualifiers @Default带有限定符 @Default 的类型 X 的不满足依赖关系
【发布时间】:2015-02-26 15:44:32
【问题描述】:

我正在尝试在 Wildfly 8.2 中运行的 EJB 上注入给定类型 (Greeter) 的对象。但是,部署总是失败并显示消息

Unsatisfied dependencies for type Greeter with qualifiers @Default

我尝试用@Default 注释GreeterImpl 和注入点,但这也不起作用。我在这里遗漏了什么吗?

我的Greeter界面:

public interface Greeter {
    public void sayHi();
}

我的GreeterImpl 类(唯一实现Greeter 的类):

public class GreeterImpl implements Greeter {
    private static final Logger LOGGER = LoggerFactory.getLogger(GreeterImpl.class);

    @Override
    public void sayHi() {
        LOGGER.info("Hi!");
    }
}

我的ScheduledGreeterEJB:

@Stateless
public class ScheduledGreeter {
    @Inject
    private Greeter greeter;

    @Schedule(second = "*/15", minute = "*", hour = "*")
    public void sayHi() {
        greeter.sayHi();
    }
}

我在这里遗漏了一些关于 CDI 的内容吗?我需要beans.xmlMETA-INF 才能使这个工作吗?

编辑: 我将其作为 war 部署到 Wildfly,如果这很重要的话。

【问题讨论】:

    标签: jakarta-ee cdi code-injection


    【解决方案1】:

    在 Java EE 7 中,对 JAR/WARs 的默认扫描是 annotated,这意味着如果您没有指定扫描模式的 beans.xml,它将默认为基于注释的扫描。

    您的课程GreeterImpl 上没有定义bean 的注释——特别是没有作用域。您可以通过添加beans.xml 或将@Dependent(或其他范围)添加到您的GreeterImpl 来覆盖它

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 2015-06-10
    • 2018-12-19
    • 2015-04-05
    相关资源
    最近更新 更多