2013-05-31 1 views
2

Я использую 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); 
    } 
} 

Что с этим параметром в моем конструкторе?

ответ

2

Позор на меня! Я просто положил LoggingFileHandler случайно в свои src/test/java. Сейчас работает отлично. Вот почему Бина не удалось найти.

Смежные вопросы