java - 构造函数中的缝焊注入(inject) : Unable to resolve any beans for Types

标签 java jboss-weld

我正在使用 Weld 1.0。这是我的情况:我有一个实例化 Weld 容器的类,该容器尝试实例化一个类 StartupShutdown:

public static void main(String[] args) {
    WeldContainer weld;
    weld = new Weld().initialize();

    StartupShutdown startupShutdown = weld.instance().select(StartupShutdown.class).get();
}

这是我的类(class)StartupShutdown:

public class StartupShutdown {

    @Inject
    public StartupShutdown(LoggingFileHandler loggingFileHandler) {
    }
}

我遇到了这个异常:

Exception in thread "main" org.jboss.weld.exceptions.UnsatisfiedResolutionException: WELD-001308 Unable to resolve any beans for Types: [class fr.easycompany.easywrite.processes.StartupShutdown]; Bindings: [QualifierInstance{annotationClass=interface javax.enterprise.inject.Default, values={}, hashCode=2062316647}]
    at org.jboss.weld.manager.BeanManagerImpl.getBean(BeanManagerImpl.java:728)
    at org.jboss.weld.bean.builtin.InstanceImpl.get(InstanceImpl.java:102)
    at fr.easycompany.easywrite.EasyWrite.main(EasyWrite.java:18)

当我删除 StartupShutdown 构造函数中的参数时,它就可以工作。

仅供引用,这是我的LoggingFileHandler:

public class LoggingFileHandler extends FileHandler {

    @Inject
    public LoggingFileHandler(LoggingFormatter formatter) throws IOException, SecurityException {
        super("");
        this.setFormatter(formatter);
    }
}

我的构造函数中的这个参数有什么问题?

最佳答案

我真丢脸!我只是不小心将 LoggingFileHandler 放入我的 src/test/java 中。现在工作正常。这就是找不到 Bean 的原因。

关于java - 构造函数中的缝焊注入(inject) : Unable to resolve any beans for Types,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16854220/

相关文章:

java - 突出显示 JTable 行中找到的数据

java - 如何在链表的最后一个添加值

javascript - AngularJs 嵌套状态与 ui 路由器不工作

java - 使用来自 src/test/META-INF/beans.xml 的替代生产者进行 Weld

java - Apache Web 服务器,Java Web 服务 - Hello World 教程

java - Eclipse 中的 JPA 项目和 EJB 项目有什么区别?

java - Arquillian 中的多个容器错误

jsf-2 - Richfaces 4 a4j :commandLink action not firing in rich:popupPanel

jakarta-ee - 创建忽略注解value()的拦截器限定符

jakarta-ee - Weld (CDI) 和 Datanucleus (JPA) 效果不佳,有优雅的解决方法吗?