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

对于带有限定符@Default的类型X,未满足的依赖关系

鲁辉
2023-03-14

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

Unsatisfied dependencies for type Greeter with qualifiers @Default

我试图用@Default注释GreeterImpl和注入点,但这也不起作用。我错过了什么吗?

我的迎宾员界面:

public interface Greeter {
    public void sayHi();
}

MyGreeterImpl类(唯一实现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的一些东西?我需要豆子吗。xmlatMETA-INF这样做有效吗?

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

共有1个答案

计胤
2023-03-14

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

您的类,GreeterImpl没有定义bean的注释,尤其是没有作用域。您可以通过添加bean来覆盖此功能。xml或通过将@Dependent(或其他作用域)添加到GreeterImpl

 类似资料: