构造函数中的Seam Weld注入:无法解析类型的任何bean

时间:2013-05-31 09:35:23

标签: 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();
}

这是我的班级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);
    }
}

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

1 个答案:

答案 0 :(得分:2)

对我感到羞耻!我只是将LoggingFileHandler意外地放在我的src/test/java中。现在工作正常。这就是找不到Bean的原因。